PHP 尝试/捕获和致命错误
2022-08-30 15:07:47
我使用以下脚本来使用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;
}
这是问题所在:
- 当与DB的连接正常时,一切正常,
- 当连接失败但我不使用数据库时,我有数组并且脚本之后仍在运行,
$GLOBALS['errors'][]
- 当与数据库的连接失败时,我收到以下致命错误:
注意:未定义的变量:C中的db:\xampp\htdocs[...]\test.php 在第 32 行
致命错误:在 C:\xampp\htdocs 中的非对象上调用成员函数 prepare() [...]\test.php 在第 32 行
注意:第 32 行是指令。$query = $db->prepare(...)
也就是说,脚本崩溃了,尝试/捕获似乎毫无用处。你知道为什么第二次尝试/捕获不起作用以及如何解决它吗?
感谢您的帮助!
编辑:有一些非常好的回答。我已经验证了一个不完全是我想做的,但这可能是最好的方法。