我一直在开发一个内容管理网站,该网站在本地主机上运行良好。我刚刚将文件上传到我的 mediatemple 服务器..并且看到一些非常有趣的结果:
警告:mysqli_stmt::bind_result() [mysqli-stmt.bind-result]: 服务器返回未知类型 246。可能您的客户端库与您使用的服务器版本不兼容!
有没有人见过这样的事情。我完全被难住了!在本地主机 (MAMP) 上运行良好,但在实时服务器上崩溃:-(。
多谢!
在 MySQL 5.0.3 中,引入了一种新的字段类型,以支持更准确的定点数学。这个新的字段类型在 MySQL 协议中用数值 246 来标识。
如果您有运行 5.0.x 或更高版本的 MySQL 服务器,并且您使用NUMERIC
or DECIMAL
,它与DECIMAL
MySQL 4.x 客户端中使用的字段类型。
http://dev.mysql.com/doc/refman/5.0/en/upgrading-from-previous-series.html says:
因为MySQL 5.0服务器有一个新的实现DECIMAL
数据类型,如果服务器由仍链接到 MySQL 4.1 客户端库的旧客户端使用,则可能会出现问题。如果客户端使用二进制客户端/服务器协议来执行生成包含数值的结果集的准备语句,则会引发错误:'Using unsupported buffer type: 246'
出现此错误的原因是 4.1 客户端库不支持新的MYSQL_TYPE_NEWDECIMAL
输入 5.0 中添加的值。没有办法禁用新的DECIMAL
服务器端的数据类型。您可以通过将应用程序与 MySQL 5.0 中的客户端库重新链接来避免该问题。
另请参阅http://bugs.php.net/bug.php?id=35536
您应该能够通过升级 PHP 中的 MySQL 客户端库来解决此问题。要么重建 PHP,要么直接放入新的 MySQL 客户端二进制文件。
最好的办法是使用较新的mysqlnd库,它为您带来了很多性能和功能方面的好处。该库包含在 PHP 5.3 及更高版本的源代码发行版中。它在常见问题解答中指出requiresPHP 5.3,这确实让我惊讶,但他们就是这么说的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)