0

我有以下 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 语句来检查查询是否成功,但我不确定在哪里。

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

4

1 回答 1

1

在查询失败时,$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).

于 2012-05-12T19:46:22.500 回答