我正在运行我的 php 脚本并遇到间歇性问题:
PHP fatal error :未捕获异常“PDOException”,消息为“SQLSTATE[HY000]:一般错误:2013 在查询期间丢失与 MySQL 服务器的连接”
如果出现这样的错误,是否可以在PDO中ping mysql?
我只是想让您注意到我的 PDO 连接不是持久的。我正在循环连接 PDO。我想每次都会循环打开一个新连接。如果是这样,那么为什么 mysql 失去连接呢?或者,如果 PDO 连接已经存在,那么它可能会提供现有的 pdo 对象。但如果发生这样的错误,它应该尝试重新连接并给出新的连接而不是错误。
有什么可能的解决方案来避免该错误?
最佳答案
就我而言,PDO 采用单个连接,如果循环大小很大,连接就会超时。因此,我增加了所有 cli 的 PDO 连接超时。
$this->connection = new PDO($this->dsn, $this->username, $this->password);
//Increase the session time out for all cli's
if(php_sapi_name() == 'cli'){
$query = $this->connection->prepare("set session wait_timeout=10000,interactive_timeout=10000,net_read_timeout=10000");
$query->execute();
}
问题现已解决。
关于php - mysql 服务器在 PDO 中消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12003857/