php 如何更改登录数据库时的超时时间?

9rygscc1  于 2023-04-28  发布在  PHP
关注(0)|答案(1)|浏览(89)

我想检查一下我们是否不能用symfony 6连接到数据库。2.6.
我使用这个代码:

$conn = $doctrine->getConnection($dbName);
try {
    $conn->connect();
} catch(Exception $e) {
    return "Failed to use database: " $e->getMessage();
}
if(!$conn->isConnected()) {
    return "Could not connect to database";
}
return "Fine !";

我在doctrine.yaml中有这样的代码:

doctrine:
    dbal:
        connections:
            default:
                url: '%env(DATABASE_URL)%'
                mapping_types:
                    bit: boolean
                options:
                    timeout: 5

我会得到像Connection timed out这样的错误。但是,问题是它需要很多时间才能超时。我设置了timeout: 5来执行,但它似乎没有改变任何东西,它在超时之前已经等待了30秒。
如何使连接在5秒而不是30秒后失败?

gzszwxb4

gzszwxb41#

这些选项与向驱动程序传递标志相同。答案here显示了您为PDO或MySQLi传递的值,但是您应该能够使用常量值作为键,而不是直接使用常量的数值。
对于MySQLi:

doctrine:
    dbal:
        connections:
            default:
                options:
                     - !php/const 'MYSQLI_OPT_CONNECT_TIMEOUT': 5

对于PDO:

doctrine:
    dbal:
        connections:
            default:
                options:
                     - !php/const 'PDO::ATTR_TIMEOUT': 5

相关问题