我必须在一些PHP脚本中包含数据库连接。所以我首先要求()然后再提出我的查询。如果将其视为单个脚本,则相当于以下内容:
Try {
$connect = new PDO("mysql:host={$DB_host};dbname={$DB_name}; charset=utf8mb4",$DB_user,$DB_pass);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
Catch(PDOException $e) {
echo $e->getMessage();
}
// Then I put the queries here
它有效,但我的问题是:这样安全吗?我在大多数教程中都看到他们将所有查询放在Try { }
大括号内。将查询置于Try { }
并将其置于之后有什么区别?
答案 0 :(得分:1)
如果由于某种原因您的查询失败,程序将在执行查询的代码行崩溃。如果这是您在代码中想要的行为,无论出于何种原因,可能有理由这样做。
如果没有错误处理,只要抛出错误,程序就会中断。因此,除非你特别需要在try catch之外进行查询(我无法猜测是什么),否则你将来会为自己制造麻烦。
答案 1 :(得分:0)
如果在查询期间发生异常(例如,如果由于缺少引号而无法正确执行查询),则不会捕获错误并且脚本的执行将停止。
在可能的情况下,通常始终首选错误处理。如果在查询中提取数据,插入数据或只是输入错误时出现问题,您应始终有办法通知用户发生了错误(并且还要记录下来以便自己进行进一步调查。)