我正在为我的一个应用程序编写安装程序,我希望能够测试一些默认的数据库设置.
使用PDO测试有效和无效的数据库连接是否可行?
我有以下代码:
try{
$dbh = new pdo('mysql:host=127.0.0.1:3308;dbname=axpdb','admin','1234');
die(json_encode(array('outcome' => true)));
}catch(PDOException $ex){
die(json_encode(array(
'outcome' => false,
'message' => 'Unable to connect'
)));
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是脚本试图连接,直到60秒的脚本执行时间用完,而不是说它无法连接到数据库.
谢谢
Sas*_*ley 45
连接数据库时需要设置错误模式:
try{
$dbh = new pdo( 'mysql:host=127.0.0.1:3308;dbname=axpdb',
'admin',
'1234',
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
die(json_encode(array('outcome' => true)));
}
catch(PDOException $ex){
die(json_encode(array('outcome' => false, 'message' => 'Unable to connect')));
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅以下链接:
Cro*_*zin 10
正如@Sascha Galley已经提到的那样,你应该将错误模式设置为异常模式.但是,您还应该设置PDO::ATTR_TIMEOUT属性以防止在某些情况下等待响应很长时间.
虽然文档说这个属性的行为在MySQL的情况下依赖于驱动程序,但它是连接超时.您将找不到任何有关它的文档,但这里是驱动程序源代码的简短片段:
long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71209 次 |
| 最近记录: |