【发布时间】:2015-08-13 21:30:46
【问题描述】:
我需要知道我刚刚运行的函数是否不成功。下面是有问题的函数及其执行方式。
我知道如何通过在函数中设置变量并检查它是否存在来做到这一点,但不确定这是最佳做法。
//Update users function
function update($db, $fn, $ln, $email, $offers, $vlue, $responce)
{
$stmt = $db->prepare("insert into kkt (fName_765, lName_765, email_765, signup_765, kkt_resp_765, stamp_765) values (:fname, :lname, :email, :signup, NOW())");
$parameters = array(
':fname' => $fn,
':lname' => $ln,
':email' => $email,
':signup' => $offers);
$stmt->execute($parameters);
print $db->lastInsertId(); //show ID
return true;
}
//Test Attributes
$fn = 'test';
$ln = 'test';
$email = 'tesst@test,com';
$offers = '1';
try {
update($db, $fn, $ln, $email, $offers);
}
catch (PDOException $e) {
echo "no update there is a slight problem " . $e->getMessage();
}
如果不成功,我将使用 try catch 通过电子邮件通知自己,但我应该把我要向用户展示的代码放在这里还是最好写点别的东西来保持它的整洁?
感谢您的所有 cmets - 最终代码现已在 CR 结束:https://codereview.stackexchange.com/questions/21481/pdo-connection-prep-and-execute-in-there-own-functions
【问题讨论】:
-
这行得通吗?您只是在寻求最佳实践建议? Try-catch 是一个很好的方法,尽管你不需要返回 true,因为你不使用它。如果
update()在各个地方使用,我倾向于将try/catch 放在函数中,如果一切正常则返回true,如果有问题则返回字符串消息。然后您可以通过if ($result !== true)测试是否发生错误。 -
请参阅下面关于被建议不要将它放在函数中的信息,但阅读本文将它放回函数中是有意义的。谢谢
标签: php