Когда и зачем использовать в mysqli строку, в mysqli принести объекта, в mysqli принести ДОЦ, в mysqli выборки массива [дубликат]
На этот вопрос уже есть ответ здесь:
Я понимаю в некотором роде различия между 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 (A Brain-Friendly Guide)" и " VISUAL QUICKPRO GUIDE PHP 5 ADVANCED". Они используют различные практики, но авторы ничего не объясняют о них.
Я твердо верю, что эти различия имеют большую причину, и они имеют разное использование и случаи, но я не могу найти, где используйте различные функции и синтаксис.
Заранее большое вам спасибо!
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
делает то, что вы ожидаете: возвращает строку результатов в виде объекта. Использование этого overmysqli_fetch_assoc
зависит от того, лучше ли объект или массив представляют обрабатываемую запись. Объект может быть из любой класс, который вы хотите - stdClass является по умолчанию.