我编写了一些 PHP 代码,使用 mysqli 扩展和准备好的语句将一些数据插入到 MySQL 表中。MySQL 服务器正在运行版本 5.0.77。
我在运行版本 5.5.27 的机器上本地测试了代码,它运行得非常好。当我使用旧版本的 MySQL 将我的代码传输到服务器时,我收到错误“ Unknown Prepared statement handler (0) given to mysql_stmt_execute ”。
我用谷歌搜索了很多这个错误,只发现了似乎在 5.0.77 版之前已经修复的错误报告。另一个奇怪的事情是,报告有时会提到错误消息中的数字在发生变化,而在我的情况下,无论我同时从多少个不同的浏览器打开连接,该数字都保持在 0 不变。
我无法升级服务器,因为它不在我的控制之下,并且还为许多其他用户提供服务。
有没有人有任何想法可能发生什么,或者如何解决它?非常感谢你。
编辑
PHP 代码粘贴在http://pastebin.com/1X4f5G5Z。我添加了一些注释,应该有助于理解这些函数的作用。
我在http://www.php.net/manual/en/mysqli-stmt.bind-param.php#110363提供的 mysqli 扩展上使用包装器类