这是我的代码我不认为我的查询有问题,但我不断收到此错误" mysql_num_rows()期望参数1是资源,布尔值在"我检查了我的数据库,以确保没有拼写错误和引号,但仍然是这个错误
if(isset($_POST['e_username']) && isset($_POST['e_password'])){
$e_username = preg_replace('#[^A-Za-z0-9]#i','', $_POST['e_username']);
$e_password = preg_replace('#[^A-Za-z0-9]#i','',$_POST['e_password']);
$e_password_md5 = md5($e_password);
$sql = @mysql_query("SELECT * FROM employee_db WHERE username='$e_username' AND password ='$e_password_md5' LIMIT 1") || die("Unable to run query".mysql_error());
$userCount = mysql_num_rows($sql);
if ($userCount == 1){
$_SESSION['e_username'] = $e_username;
header("Location:profile.php");
exit();
}else{
//echo "<div class =\"error\">Incorrect Infomation Register --------></div>";
}
}
答案 0 :(得分:0)
问题是因为您在查询结束时有|| die(...)
- 这会将您的结果转换为条件结果,即布尔结果。
尝试删除|| die(...)
并使用不同形式的错误检查,例如try / catch块,或使用mysql_errno()
(如果没有错误,此方法的结果为零;或者如果有,则为正整数。