我正在学习一个面向对象的mysqli课程。在连接数据库时,他们使用以下脚本:
$db = new mysqli("host", "user", "password", "database");
if ($db->connect_error){
$error = $db->connect_error;
echo("Not connected: " . $error);
}
稍后,他们使用try / catch块调用数据库连接文件:
try {
require_once "connection.php";
}catch (Exception $e){
$error = $e->getMessage();
echo $error;
}
在尝试连接后,连接文件是否立即处理可能的连接错误?try/catch块基本上是在做同样的事情吗?还是try/catch块正在寻找不同类型的错误?
更新:为了澄清一些答案后,当我只这样做时:
try {
$db = new mysqli("host", "user", "password", "database");
}catch (Exception $e){
$error = $e->getMessage();
echo $error;
}
假设数据库访问数据错误(例如错误的主机),我会收到PHP警告,但在catch块中却没有错误输出。难道catch不应该检测到此错误吗?