Когда и почему использовать mysqli fetch row, mysqli fetch object, mysqli fetch assoc, mysqli fetch array [дубликат]

этот вопрос уже есть ответ здесь:

  • mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object 3 ответы

Я понимаю в некотором роде различия между mysqli_fetch_row, mysqli_fetch_object, mysqli_fetch_assoc и mysqli_fetch_array.

мой вопрос, если они так похожи (если они действительно почти одинаковые как говорят многие темы) что мы должны использовать? Почему мы должны использовать один и есть разница в производительности?

Я читал некоторые люди говорят, никогда не использовать mysqli_fetch_array. Я в замешательстве. Я читаю сейчас некоторые книги PHP, и все примеры включают его. Если это неверно, лучше ли мне прекратить использовать его во время тренировки и использовать что-то еще, что вы могли бы объяснить и порекомендовать?

Я также прочитал, что это равный:

mysqli_fetch_array( $result, MYSQLI_ASSOC ) = mysqli_fetch_assoc( $result ) 
mysqli_fetch_array( $result, MYSQLI_NUM ) = mysqli_fetch_row( $result )
mysqli_fetch_array ( $result ) = mysqli_fetch_assoc( $result ) + mysqli_fetch_row( $result )

если они равны как концепция, существуют ли различия в производительности? Что мы должны использовать? Различия для лучшей производительности для лучших навыков программирования, которые помогают разработчикам использовать вместе для легкой работы?

я прочитала "Head First PHP & MySQL (руководство для мозга)" и "VISUAL QUICKPRO РУКОВОДСТВО PHP 5 ADVANCED". Они используют разные практики, но авторы ничего о них не объясняют.

I я твердо верю, что эти различия имеют большую причину, и они имеют разное использование и случаи, но я не могу найти, где использовать разные функции и синтаксис.

большое спасибо заранее!

3 ответов


вот некоторые ссылки, которые должны ответить на ваш вопрос: mysqli_fetch_row, mysqli_fetch_assoc, mysqli_fetch_object, mysqli_fetch_array

в целом PHP документации Кажется, хороший ресурс для вас.


эти строки из документации на php.net являются ключевыми:

mysqli_fetch_array () является расширенной версией mysqli_fetch_row() функция. Помимо сохранения данных в числовых индексах массив результатов, функция mysqli_fetch_array () также может хранить данные в ассоциативных индексах, используя имена полей результирующего набора как ключи.

http://www.php.net/manual/en/mysqli-result.fetch-array.php

в случаях, когда два или более столбцов имеют одно и то же имя, единственный способ ссылаться на первое появление этого столбца-числовой индекс. В этих случаях вам нужно mysqli_fetch_row или mysqli_fetch_array С MYSQLI_BOTH или MYSQLI_NUM в качестве второго аргумента (в процедурном использовании).

mysqli_fetch_assoc($result) - это просто сокращение для mysqli_fetch_array($result, MYSQLI_ASSOC).

mysqli_fetch_object делает то, что вы ожидаете: Возвращает строку результатов в виде объекта. Использование этого более mysqli_fetch_assoc вопрос в том, является ли объект или массив лучше представляет обрабатываемую запись. Объект может быть любого класса, который вы хотите - stdClass по умолчанию.


Я не думаю, что есть огромные различия, его только то, что вам нужна только одна функция, чтобы сделать то же самое;)