如果mySQL查询成功,请执行一些操作

时间:2012-05-12 19:43:23

标签: php mysql if-statement

我有以下mySQL查询:

$content = mysqli_query($dblink, "SELECT * FROM passwordrecovery WHERE code = '$formcode'");

            while($row = mysqli_fetch_array($content)) {
                $db_username = $row['username'];
                $db_email = $row['email'];
                $db_code = $row['code'];
            }

我想在这里添加一个IF语句来检查查询是否成功,但我不确定在哪里。

基本上,我有一个表单,用户可以插入代码(通过电子邮件发送)来检索他们的密码。但是他们可能会犯错并输入数据库中不存在的代码,我想解释这种情况并抛出错误。我只是不确定该怎么做?

1 个答案:

答案 0 :(得分:0)

在查询失败时,$content将是FALSE而不是结果资源。检查它是不是假的。如果他们输入了不存在的代码,则不会返回任何行,因此请通过mysqli_num_rows()检查至少一行。

$content = mysqli_query($dblink, "SELECT * FROM passwordrecovery WHERE code = '$formcode'");

if ($content) {
    // Check for at least one row returned
  if (mysqli_num_rows($content) < 1) {
    // Invalid lookup, show error to user
  }
  // Got a row back, so query was valid
  else {
    while($row = mysqli_fetch_array($content)) {
      $db_username = $row['username'];
      $db_email = $row['email'];
      $db_code = $row['code'];
    }
  } 
}
else {
  // Query failure - display error to user
  // and check mysqli_error() internally for debugging
}

我们假设您已通过$formcode正确转发mysqli_real_escape_string($formcode)