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

问题描述 投票:0回答:1

我想检查我们是否无法使用 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 秒后失败?

php symfony connection php-8
1个回答
0
投票

选项与将标志传递给驱动程序相同。 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
© www.soinside.com 2019 - 2024. All rights reserved.