Все функции очень похожи:
mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object()
Я недавно начал использовать mysql_fetch_object, поскольку я делаю много OOP с PHP.
Но каковы мнения людей, по которым лучше всего использовать и почему, и, возможно, в каком сценарии их лучше всего использовать.
Спасибо за ваши мысли!
mysql_fetch_array
получит массив, который может иметь как ключи:
MYSQL_BOTH
MYSQL_ASSOC
– в этом случае вы получите то же самое, что и при использовании mysql_fetch_assoc
MYSQL_NUM
Получение результатов, индексированных именами столбцов, является, пожалуй, самым полезным решением – проще в использовании.
Но получение результатов, индексированных положением полей в предложении select, интересно в одном месте: когда у вас несколько столбцов с одинаковым именем или псевдонимом.
В этом случае, поскольку у вас не может быть двух записей с одним и тем же индексом в массиве, вы сможете получить доступ только к одному из этих столбцов, используя имя столбца в качестве индекса.
Для других столбцов с таким же именем вам придется использовать числовые индексы.
Эта ситуация, вероятно, является единственным случаем, для которого я бы использовал mysql_fetch_array
– и я предпочитаю использовать псевдонимы в моем запросе, чтобы избежать этой ситуации – это более понятно, на мой взгляд.
mysql_fetch_assoc
получит массив с именами столбцов в виде ключей и данными как значениями.
На самом деле нечего сказать.
И mysql_fetch_object
будет получать ваши объекты взамен.
Выбор между mysql_fetch_assoc
и mysql_fetch_object
скорее всего, зависит от того, как вы разрабатываете свое приложение: при использовании объектов повсюду, вероятно, наиболее подходящим является второй.
Если вы используете массивы в виде контейнеров данных, вы можете просто перейти с первого.
mysql_fetch_array () извлекает строку результатов как ассоциативный массив, числовой массив или и то, и другое. Он возвращает массив строк, соответствующий выбранной строке, или FALSE, если больше строк нет. Тип возвращаемого массива зависит от того, как определяется $ result_type.
Используя MYSQL_NUM, вы получаете только числовые индексы (как $ row [0], $ row 1 и т. Д.), Т. Е. Числовой массив.
Используя MYSQL_ASSOC, вы получаете только ассоциативные индексы (как $ row ["id"], $ row ["name"] и т. Д.), Т. Е. Ассоциативный массив.
Используя MYSQL_BOTH (по умолчанию), вы получите массив с ассоциативными и числовыми индексами. (как $ row [0], $ row ["name"] и т. д.), т. е. как числовой массив, так и ассоциативный массив.
mysql_fetch_assoc () извлекает строку результатов как ассоциативный массив. (имена столбцов в качестве ключа).
mysql_fetch_object () выбирает строку результата как объект.
Он возвращает объект со свойствами, соответствующими выбранной строке, и перемещает указатель внутренних данных вперед.
Для меня есть преимущества использования mysql_fetch_assoc () в том, что вы можете использовать функции массива, такие как array_walk и uasort ().