检测预准备语句中的错误

时间:2012-02-12 01:57:22

标签: php

我对PHP中的预处理语句有一个快速的问题。我以前使用mysql_query函数来操作数据库数据,但被告知为了安全问题,我应该考虑使用预准备语句。我已经进行了转换,但是我有一些关于如何检测查询是否失败的问题。

下面我有一段示例代码。 $ con变量是一个特定的连接,具体取决于我正在尝试的查询,在这种情况下,连接将通过仅具有选择权限的帐户连接到我的数据库。

$stmt = $con->stmt_init();
$stmt->prepare("SELECT COUNT(*) FROM users WHERE username=?");
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($user_count);
$stmt->fetch();
$stmt->close();

我想知道如何在任何这些步骤中检测到故障?我能想象的最简单的解决方案就是使用try / catch来包装代码..但我想知道是否有更复杂的方法来做到这一点。

感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:1)

要扩展Jared的评论,您可以执行以下操作:

$stmt->execute();
if( !$stmt->errorCode() ){
    // do something with results
}else{
    // do something with the error
}
$stmt->close();