小飛魚通達二開 處理PDO連接數據庫時的Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]報錯

之前在小飛魚本機上開發的程序,使用了PDO方式連接mysql數據庫,今天在部署到服務器上時居然不顯示數據,查找日誌文件出現下面的信息:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared

開始以爲是這個機器上的PDO沒有配置開放,試着調了下php.ini文件中的pdo選項,重啓服務後問題沒有得到解決。

期間試了一下其他頁面的程序,發現有的頁面上時可以直接顯示數據的,唯獨這個頁面有問題,而這個頁面裏用到了分頁、視圖這些,經過進一步查找資料,發現是視圖裏使用了左連接,查詢mysql的cache參數:

SHOW VARIABLES LIKE '%table_open_cache%';
SHOW VARIABLES LIKE '%table_definition_cache%';

發現有一個cache設置的比較小,調整一下:

SET GLOBAL table_open_cache=16384;
SET GLOBAL table_definition_cache=16384;

執行查詢後,數據可以正常顯示了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章