Неустранимая ошибка: вызов неопределенного метода mysqli_result :: fetch_all ()

У меня проблемы с PHP в Ubuntu 10.04. Когда я пытаюсь использовать mysqli_result :: fetch_all, появляется такая ошибка:

Вызов неопределенного метода 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 не появляется. Как его установить? Может ли это быть проблема?

Related of "Неустранимая ошибка: вызов неопределенного метода mysqli_result :: fetch_all ()"

mysqli_result :: fetch_all () требует MySQL Native Driver (mysqlnd).

скорее всего, вы можете пропустить его.

посмотрите на эти сообщения, которые могут вам помочь.

mysqli fetch_all () не действительная функция?

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