我的代码出错了。为什么会发生这种情况?
提前致谢!
警告:mysql_num_rows()期望参数1为资源,第15行的C:\ wamp \ www \ busreserv \ index.php中给出布尔值
$sql = mysql_query("select * from register where email='$name' AND password='$pass'");
if(mysql_num_rows($sql)==0)
答案 0 :(得分:2)
来自mysql_query PHP public documentation:
返回值
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE。
这意味着您的SQL查询未成功,并且正在返回FALSE布尔值而不是有效的SQL游标。在调用mysql_num_rows之前进行验证:
$sql = mysql_query("select * from register where email='$name' AND password='$pass'");
if($sql == FALSE) {
echo "Danger, Will Robinson! SQL statement failed";
} else if(mysql_num_rows($sql)==0) {
echo "No results found...";
} else {
...
}
答案 1 :(得分:0)
经过测试和完全正常工作的代码。此代码不受sql注入保护,但它确实使用mysqli
函数而不是您正在使用的mysql
。
$sql = "SELECT * FROM from register where email='$name' AND password='$pass'";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$email = $row["email"];
////get more rows here/////////
}
但是,不推荐使用PDO或prepared语句作为mysql函数。
请注意$db_conx
是config.php文件中的mysql数据库连接。如果您需要更多帮助,请告诉我。