带有PDOStatement的PDO重新连接"mysql server gone"错误

x74*_*x61 11 php mysql pdo pdostatement

当超过mysql的wait_timeout时,我的PHP CLI脚本失去了连接.我无法更改wait_timeout,那么当我使用PDOStatement执行查询时,如何构建一个重新连接的try/catch语句?

Rub*_*eda 2

最好的方法是将 PDO 实例创建包装到一个存储实例和创建时间的单例(即 MyPDOFactory)中,这样,您可以重用它或在达到 TTL(2 或 3 秒是对于大多数应用来说已经足够了)。您只需调用 MyPDOFactory::get() 即可获取可用于准备 PDOStatement 的有效 PDO,只需确保尽快执行它即可。