使用Trigger_Error()尝试/捕获

时间:2014-04-09 07:44:52

标签: php sql pdo try-catch

我正和一位朋友一起开展项目,我们正在为我们正在创建的网站建立自己的登录和注册系统。我用以下代码声明质疑他在PHP编码方面的技巧:

   try { 
      $stmt = $db->prepare($query); 
      $results = $stmt->execute($params); 
      }
   catch() { 
      trigger_error('The query has failed.');
      }

我知道我们要执行的SQL查询将用于登录用户,这不是问题,也不是上面代码块中没有显示该部分代码的原因。

这是我第一次看到某人使用trigger_error() PDOExeception $error语句,这就是我开始编写代码的方式。

我们应该使用Try,Catch和Trigger_Error以这种方式继续我们的核心登录,注册和所有SQL语句吗?我应该将其更改为PDOExeception $error吗?

1 个答案:

答案 0 :(得分:1)

都不是。

触发错误在这里没有任何意义,因为未被捕获的异常已经错误。因此,捕获错误只是为了抛出错误是一个重言式。此外,未捕获的异常包含必不可少的堆栈跟踪,而普通错误则不包含。

不需要使用catch回显。这只是PHP人员的妄想。

每次执行查询编写四行代码也没有任何意义。我甚至写了一篇关于此事的专门文章 - 所以,I wouldn't repeat myself

所以,只需将此代码重写为

  $stmt = $db->prepare($query); 
  $results = $stmt->execute($params); 

这就是你真正需要的一切