【发布时间】:2019-12-10 06:00:57
【问题描述】:
是否有带有 PDO 的 how to conect to secondary database if primary database is down (PHP) 版本?
如果主数据库发生故障,我基本上想连接到另一个数据库。
【问题讨论】:
是否有带有 PDO 的 how to conect to secondary database if primary database is down (PHP) 版本?
如果主数据库发生故障,我基本上想连接到另一个数据库。
【问题讨论】:
很简单,您可以尝试连接到数据库,如果失败,则连接到另一个。使用try/catch 块并将PDO::ATTR_ERRMODE 属性设置为抛出异常PDO::ERRMODE_EXCEPTION。然后如果连接抛出异常,捕获并尝试连接到另一个数据库。
不过,您还需要测试第二个连接,因为如果该连接也失败,它会像以前一样抛出异常。
try {
$pdo = new PDO("mysql:host=host1;dbname=host1", 'username1', 'password1', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (Exception $e) {
try {
$pdo = new PDO("mysql:host=host2;dbname=host2", 'username2', 'password2', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (Exception $e) {
echo "Connection failed to both databases";
exit;
}
}
【讨论】: