我正和一位朋友一起开展项目,我们正在为我们正在创建的网站建立自己的登录和注册系统。我用以下代码声明质疑他在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
吗?
答案 0 :(得分:1)
都不是。
触发错误在这里没有任何意义,因为未被捕获的异常已经错误。因此,捕获错误只是为了抛出错误是一个重言式。此外,未捕获的异常包含必不可少的堆栈跟踪,而普通错误则不包含。
不需要使用catch回显。这只是PHP人员的妄想。
为每次执行查询编写四行代码也没有任何意义。我甚至写了一篇关于此事的专门文章 - 所以,I wouldn't repeat myself
所以,只需将此代码重写为
$stmt = $db->prepare($query);
$results = $stmt->execute($params);
这就是你真正需要的一切