我正在使用以下脚本来使用使用 PHP 的数据库:
try{
$db = new PDO('mysql:host='.$host.';port='.$port.';dbname='.$db, $user, $pass, $options);
}
catch(Exception $e){
$GLOBALS['errors'][] = $e;
}
现在,我想使用此数据库句柄使用以下代码执行请求:
try{
$query = $db->prepare("INSERT INTO users (...) VALUES (...);");
$query->execute(array(
'...' => $...,
'...' => $...
));
}
catch(Exception $e){
$GLOBALS['errors'][] = $e;
}
这是问题所在:
- 当与数据库的连接正常时,一切正常,
- 当连接失败但我不使用数据库时,我有
$GLOBALS['errors'][]
数组,之后脚本仍在运行, - 当与数据库的连接失败时,我收到以下致命错误:
注意:未定义变量:第 32 行 C:\xampp\htdocs[...]\test.php 中的 db
致命错误:第 32 行 C:\xampp\htdocs[...]\test.php 中的非对象调用成员函数 prepare()
注意:第 32 行是$query = $db->prepare(...)
指令。
也就是说,脚本崩溃了,try/catch 好像也没用了。您知道为什么第二次尝试/捕获不起作用以及如何解决吗?
谢谢您的帮助!
编辑:有一些非常好的回复。我已经验证了一个不完全是我想做的,但这可能是最好的方法。