当我使用正常的预处理查询时,我遇到了这个错误,该查询在一台服务器上工作而在另一台服务器上无效。
$this->PreparedQuery("UPDATE user_login SET end_time = '?' WHERE id = ?", 692233, 1);
答案 0 :(得分:0)
问题尚不清楚。
我将发布一些避免此mysql错误的方法:
检查您的客户端代码,不需要后应关闭准备好的stmt对象。请不要泄漏资源。
如果您的客户端代码使用预处理语句作为缓存,请在程序看到此错误后将其全部关闭。您也可以尝试完全不将准备好的语句用作缓存,而仅创建,使用并删除它。
使用SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
查找所有客户端代码,然后重复步骤1。
您也可以重新启动mysql服务器以临时解决此问题。
答案 1 :(得分:0)
我最近也遇到了这个问题。确保执行后要处置PreparedQuery或其他任何准备好的SQL命令。处理呼叫ClosePreparedStatement。
答案 2 :(得分:-1)
上调:
set global max_prepared_stmt_count = 30000;
**做你需要做的事情**
再次减少到默认值:
set global max_prepared_stmt_count = 16382;