Ответ 1
mysqli_result:: fetch_all() требует MySQL Native Driver (mysqlnd).
Скорее всего, вы можете пропустить его.
посмотрите эти сообщения, которые могут вам помочь.
У меня проблемы с PHP в Ubuntu 10.04. Когда я пытаюсь использовать mysqli_result:: fetch_all, появляется такая ошибка:
Вызов метода undefined mysqli_result:: fetch_all()
Однако он работает в Windows XP.
Код:
$result = $this->dbh->query('SELECT [...] ');
return $result->fetch_all(MYSQLI_ASSOC);
Я не хочу использовать fetch_assoc с циклом, потому что я отправляю результат на другой уровень для обработки.
Я использую PHP 5.4.4. и с php -m | grep mysql модуль mysqlnd не появляется. Как его установить? Это может быть проблема?
mysqli_result:: fetch_all() требует MySQL Native Driver (mysqlnd).
Скорее всего, вы можете пропустить его.
посмотрите эти сообщения, которые могут вам помочь.
fetch_all потребляет больше памяти, чем fetch_array(), и имеет другие побочные эффекты, поэтому fetch_array/fetch_assoc являются предпочтительными.
Подробный из документации PHP:
Доступно только с mysqlnd.
Так как mysqli_fetch_all() возвращает все строки в виде массива в одном шаг, он может потреблять больше памяти, чем некоторые аналогичные функции, такие как mysqli_fetch_array(), который возвращает только одну строку за раз из результат набор. Кроме того, если вам нужно повторить набор результатов, вы потребуется конструкция цикла, которая будет еще больше влиять на производительность. По этим причинам mysqli_fetch_all() следует использовать только в тех ситуации, когда полученный набор результатов будет отправлен на другой уровень для обработки.
Если вы действительно хотите его использовать, вам нужно установить mySQL с помощью собственного диска (mysqlnd) Пример установки:
./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
В Ubuntu вы можете просто сделать
sudo apt-get install php5-mysqlnd
http://www.php.net/manual/en/mysqli-result.fetch-all.php
Доступно только с mysqlnd.
Заметки о включении mysqlnd
: http://www.php.net/manual/en/mysqlnd.install.php