Когда и зачем использовать в 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 6

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 делает то, что вы ожидаете: возвращает строку результатов в виде объекта. Использование этого over mysqli_fetch_assoc зависит от того, лучше ли объект или массив представляют обрабатываемую запись. Объект может быть из любой класс, который вы хотите - stdClass является по умолчанию.

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