Подтвердить что ты не робот

Mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array()

Возможный дубликат:
mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

Мне нужна функция, которая может возвращать поля в текущей строке набора результатов в ассоциативный массив и перемещает указатель результата в следующую строку.

Confused между

mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()

Какой я должен использовать? Любая помощь будет оценена по достоинству.  Спасибо.

4b9b3361

Ответ 1

Примечание. Использование функций mysql_* считается устаревшим, и вместо этого вы должны использовать что-то, что обеспечивает лучшую безопасность и большую функциональность, например MySQLi или PDO.

Что это такое?

Вы ищете mysql_fetch_assoc,, поскольку имя подразумевает, что оно вернет ассоциативный массив (с именами столбцов в виде ключей и значений как значения строки).


Как будут возвращаться различные функции?

Все упомянутые функции возвращают массив, различия между ними - это значения, которые используются как ключи в возвращаемом объекте.

  • mysql_fetch_row

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

  • mysql_fetch_assoc

    Эта функция вернет строку как ассоциативный массив, где имена столбцов будут ключами, хранящими соответствующее значение.

  • mysql_fetch_array

    Эта функция фактически вернет массив с объединением содержимого mysql_fetch_row и mysql_fetch_assoc в один. Он будет иметь числовые и строковые ключи, которые позволят вам получить доступ к вашим данным в любом удобном для вас способе.

    Рекомендуется использовать _assoc или _row.

Ответ 2

mysql_fetch_assoc, когда вы вручную ссылаетесь на поля.

mysql_fetch_row, когда вы используете его как часть list($a,$b,$c...) = ...

Никогда mysql_fetch_array.

Ответ 3

mysql_fetch_assoc()

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

while ($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
    echo $row["name"];
}