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