将MySQL查询放在try {}之外是否安全?

时间:2016-07-29 14:33:33

标签: php mysql pdo

我必须在一些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 { }并将其置于之后有什么区别?

2 个答案:

答案 0 :(得分:1)

如果由于某种原因您的查询失败,程序将在执行查询的代码行崩溃。如果这是您在代码中想要的行为,无论出于何种原因,可能有理由这样做。

如果没有错误处理,只要抛出错误,程序就会中断。因此,除非你特别需要在try catch之外进行查询(我无法猜测是什么),否则你将来会为自己制造麻烦。

答案 1 :(得分:0)

如果在查询期间发生异常(例如,如果由于缺少引号而无法正确执行查询),则不会捕获错误并且脚本的执行将停止。

在可能的情况下,通常始终首选错误处理。如果在查询中提取数据,插入数据或只是输入错误时出现问题,您应始终有办法通知用户发生了错误(并且还要记录下来以便自己进行进一步调查。)