Когда я возвращаю одну строку из таблицы, чтобы собрать результаты, которые я обычно использую, например:
$info = $result->fetch_assoc();
В чем разница между этим и:
$info = $result->fetch_array();
Есть ли причина использовать один над другим при возврате только одной строки, или это просто личное предпочтение?
Это все о производительности
fetch_array()
возвращает один массив как с числовыми ключами, так и с ассоциативными строками (имена столбцов) , поэтому здесь вы можете использовать $row['column_name']
или $row[0]
Где, как fetch_assoc()
будет возвращать строковый массив с индексированным строкой и без числового массива, поэтому у вас не будет возможности использовать числовые клавиши, такие как . $row[0]
Таким образом, последний лучше по производительности по сравнению с fetch_array()
и, очевидно, использование названных индексов намного лучше по сравнению с числовыми индексами.
fetch_array возвращает значение с индексированием. Но Fetch_assoc просто возвращает значение.
например, fetch_array возвращает
[0] => 11 [id] => 11 [1] => 2014-12-29 [date] => 2014-12-29
здесь расположение массива 0 содержит 11, также это имя места 'id'.
то же самое происходит с fetch_assoc
[id] => 11 [date] => 2014-12-29
означает просто возвращает значение.
(PHP 5) От: http://php.net/manual/en/mysqli-result.fetch-array.php
mysqli_result :: fetch_array – mysqli_fetch_array – Получить строку результата как ассоциативный, числовой массив или оба
Таким образом, fetch_array()
и fetch_assoc()
могут быть фактически эквивалентными вызовами. Что касается производительности, я рекомендую использовать любой вызов, который приводит к получению более читаемого кода, и беспокоится только о производительности после того, как вы четко определили вызов как проблему производительности. Скорее всего, у вас есть более серьезные проблемы с производительностью, когда вы меньше всего этого ожидаете.