我想在用戶忘記用戶名時返回用戶名。我再次驗證他們的電子郵件地址,但由於某種原因,它只是說'錯誤:無法找到用戶名'。我正在使用我希望的正確的mysqli語法。不會返回用戶名的MYSQLI結果
if (isset($_POST['user'])) {
$email = mysqli_real_escape_string($con, $_POST['email']);
$username = "";
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
$errmsg = 'Error: ' . $email . ' is not a valid email address';
} else {
$query = "SELECT email FROM admin WHERE email = '$email'";
$results = mysqli_query($con, $query);
$query2 = mysqli_fetch_array($results);
if ($query2 == 0) {
$errmsg = 'Error: ' . $email . ' is not found, please try again';
}
if (!errmsg) {
$getuname = "SELECT * FROM admin WHERE email = '$email'";
if (!mysqli_query($con, $getuname)) {
die('Error: ' . mysqli_error($con));
}
$row = mysql_fetch_array($getuname);
}
$username = '<div class="registersuccess">Your username is: ' . $row['username'] . '</div>';
}
$username = '<div class="registererror">Error: cannot find username</div>';
mysqli_close($con);
}
我是一個noob當談到這一點,但我很確定這是正確的。如果不是我出錯的地方?
一件事,你應該使用'preg_match',而不是'這已棄用eregi'加mysql_'的'混合和'mysqli_'作出*災難正在進行中。* –
看起來像你在if語句之外設置「找不到」值,所以它總是被擊中。如果你的代碼格式正確,這將更容易注意到。 – Mansfield
不需要2個不同的查詢,你只能在一箇中完成。 –