PHP保持PDO ATTR_PERSISTENT连接活着

use*_*468 3 php mysql pdo

我正在使用PDO Persistent Connection运行无休止的PHP脚本,如下所示:

$conn=new PDO(
  'mysql:host=127.0.0.1','user','pass', array(PDO::ATTR_PERSISTENT => true)
);
Run Code Online (Sandbox Code Playgroud)

mySQL wait_timeout变量设置为28800,我将脚本空闲了12个小时以进行测试; 并自动删除连接,因此我假设该PDO::ATTR_PERSISTENT属性被系统变量取代wait_timeout.

所以我想知道是否有一个设置或另一个PHP方法来保持连接呼吸,只要PHP脚本正在运行以及这是否是一个好习惯.

我的计划B将每60分钟执行一次无资源的mySQL查询来重置时钟.

操作系统:4GB RAM VPS Debian 64位SSD

dyn*_*mic 5

我建议你用另一种方法来处理这种情况.每当您需要在持久的脚本中运行查询时,请确保存在连接.否则重新连接.

    try {
        echo "Testing connection...\n";
        $old_errlevel = error_reporting(0);
        self::$pdo->query("SELECT 1");
    } catch (PDOException $e) {
        echo "Connection failed, reinitializing...\n";
        self::init();
    }
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到完整的类示例.我还建议您在知道长时间不使用它时明确关闭脚本中的连接.