连接超时,Zend_Db::工厂使用 PDO_MYSQL


Connection timeout with Zend_Db::factory using PDO_MYSQL

当使用Zend_Db::factory与PDO_MYSQL一起使用时,使用PHP代码设置连接超时的正确(或更好)方法是什么?

我有:

$params = array (
    'host'      => 'localhost',
    'username'  => 'username',
    'password'  => 'password',
    'dbname'    => 'mydb',
    'charset'   => 'UTF8',
);
$db = Zend_Db::factory('PDO_MYSQL', $params);

a.)

$db->getConnection()->setAttribute(PDO::ATTR_TIMEOUT, 600);

b.)

$sql = "SET SESSION wait_timeout = 600";
$db->getConnection()->query($sql);

将连接超时减少到 3 秒:

$params = array (
    'host'      => 'localhost',
    'username'  => 'username',
    'password'  => 'password',
    'dbname'    => 'mydb',
    'charset'   => 'UTF8',
    'driver_options' => [
        'PDO::ATTR_TIMEOUT => 3
    ]
);
$db = Zend_Db::factory('PDO_MYSQL', $params);