【发布时间】:2015-02-05 08:43:51
【问题描述】:
我正在学习 OOP 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 不应该检测到这个错误吗?
【问题讨论】:
-
请添加课程链接
-
如果连接文件抛出异常,并且如果 catch 块在显示任何异常后终止脚本,我倾向于同意....但实际上没有任何东西实际上处理任何连接问题干净,因为无论是否有数据库连接,脚本都会继续执行
-
joebezucha,该课程名为 Accessing Databases with Object-Oriented PHP from lynda.com