MySQLi – сервер возвратил неизвестный тип 246

Я работаю над сайтом, управляемым контентом, который отлично работает на localhost. Я только что загрузил файлы на свой сервер mediatemple .. и вижу некоторые довольно интересные результаты:

Предупреждение: mysqli_stmt :: bind_result () [mysqli-stmt.bind-result]: сервер возвратил неизвестный тип 246. Возможно, ваша клиентская библиотека несовместима с используемой вами версией сервера!

Кто-нибудь когда-либо видел что-то подобное раньше. Я полностью в тупике! Отлично работает на localhost (MAMP), но ломается на реальном сервере :-(.

Большое спасибо!

В MySQL 5.0.3 был введен новый тип поля для более точной поддержки математики с фиксированной запятой. Этот новый тип поля идентифицируется в протоколе MySQL с числовым значением 246.

Если у вас есть сервер MySQL с версией 5.0.x или выше, и вы используете NUMERIC или DECIMAL , это несовместимо с типом поля DECIMAL используемым в клиенте MySQL 4.x.

http://dev.mysql.com/doc/refman/5.0/ru/upgrading-from-previous-series.html говорит:

Поскольку сервер MySQL 5.0 имеет новую реализацию типа данных DECIMAL , может возникнуть проблема, если сервер используется более старыми клиентами, которые все еще связаны с клиентскими библиотеками MySQL 4.1. Если клиент использует бинарный клиентский / серверный протокол для выполнения подготовленных операторов, которые генерируют наборы результатов, содержащие числовые значения, возникает ошибка: 'Using unsupported buffer type: 246'

Эта ошибка возникает из-за того, что клиентские библиотеки 4.1 не поддерживают новое MYSQL_TYPE_NEWDECIMAL типа MYSQL_TYPE_NEWDECIMAL добавленное в 5.0. DECIMAL отключить новый тип данных DECIMAL на стороне сервера. Вы можете избежать проблемы, переназначив приложение с клиентскими библиотеками из MySQL 5.0.

Также см. http://bugs.php.net/bug.php?id=35536

Вы должны решить эту проблему, обновив свою клиентскую библиотеку MySQL на PHP. Либо перестройте PHP, либо просто запустите новый двоичный клиент MySQL.

Лучше всего было бы использовать новую библиотеку mysqlnd , которая дает вам много преимуществ для производительности и функциональности. Эта библиотека включена в исходный дистрибутив PHP 5.3 и более поздних версий. В FAQ часто указывается, что для него требуется PHP 5.3, что меня действительно удивляет, но это то, что они говорят.

Измените свой тип DECIMAL на FLOAT в базе данных, пока он не будет поддержан.

Это должна быть проблема с версией MySQL.

Это то, что я нашел на другом форуме:

 apt-get source php5-mysqli cd php5-... ./configure --with-mysqli=/usr/bin/mysql_config --without-mysql make cp ext/mysqli/modules/mysqli.so /usr/lib/php5/... 

Очевидно, у вас, вероятно, разные имена папок, но я надеюсь, что вы поймете эту идею.