воскресенье, 30 декабря 2012 г.

Решение "Fatal error: Call to undefined method mysqli_stmt::get_result()"


После установки на сервер(Debian  squeeze, apache2, php, mysql) своего сайта с удивлением обнаружил, что скрипты отказываются работать, выдавая такую ошибку: "Fatal error: Call to undefined function mysqli_stmt_get_result()". Оказалось, что для работы mysqli_stmt_get_result() Нужен mysqlnd, хотя в той же убунте он идет с php по умолчанию(по крайней мере в самой свежей). Пришлось пересобирать.

Вот решение:

Сначала подключаем репозитории с www.dotdeb.org

nano /etc/apt/sources.list

Добавляем

deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all


Потом выполняем эти команды:

wget http://www.dotdeb.org/dotdeb.gpg

cat dotdeb.gpg | sudo apt-key add -

apt-get update

apt-get upgrade

apt-get install dpkg-dev

apt-get install php5-dev

cd /tmp

apt-get source php5

cd  /tmp/php5-5.3.20/ext/mysqlnd

mv config9.m4 config.m4

sed -ie "s{ext/mysqlnd/php_mysqlnd_config.h{config.h{" mysqlnd_portability.h

phpize

./configure

cd /tmp/php5-5.3.20/ext/mysql

phpize

./configure --with-mysql=mysqlnd

make && make install

cd /tmp/php5-5.3.20/ext/mysqli

phpize

./configure --with-mysqli=mysqlnd

make && make install



После этого у меня всё заработало =).

Комментариев нет:

Отправить комментарий