我有以下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语句来检查查询是否成功,但我不确定在哪里。
基本上,我有一个表单,用户可以插入代码(通过电子邮件发送)来检索他们的密码。但是他们可能会犯错并输入数据库中不存在的代码,我想解释这种情况并抛出错误。我只是不确定该怎么做?
答案 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)
。