我想检查我们是否无法使用 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 秒后失败?
选项与将标志传递给驱动程序相同。 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