警告:mysql_num_rows()期望参数1是资源,布尔给定。为什么?
我得到这个错误与我的代码。为什么会发生这种情况?警告:mysql_num_rows()期望参数1是资源,布尔给定。为什么?
在此先感谢!
警告:mysql_num_rows()预计参数1是资源,在布尔C中给出:\瓦帕\ WWW \ busreserv \的index.php上线15
$sql = mysql_query("select * from register where email='$name' AND password='$pass'");
if(mysql_num_rows($sql)==0)
从mysql_query PHP public documentation:
返回值
对于SELECT,SHOW,d ESCRIBE,EXPLAIN和其他返回resultset的语句,mysql_query()在成功时返回一个资源,或者在错误时返回FALSE。
这意味着您的SQL查询是不是被成功和正在返回而不是有效的SQL游标FALSE布尔值。在调用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 {
...
}
没错。你的问题在mysql_query中,而不是在num_rows中。不知道,但也许注册和密码是mysql的关键字,你应该尝试:select * from \'register \'where email ='$ name'AND \'password \'='$ pass' – 2015-04-02 10:14:27
经过测试和完全正常工作的代码。此代码是不安全的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或准备语句作为mysql函数已被弃用。
请注意,$db_conx
是config.php文件中的mysql数据库连接。让我知道你是否需要任何帮助。
**警告:**您正在使用已弃用的数据库API!考虑使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。 (必须的,可以写一个bot来写这些注释或者放弃。*#叹气*)http://*.com/a/12860046/3000179 – 2015-04-02 10:17:29
另外看看[mysql_fetch_array()期望参数1是资源(或mysqli_result),布尔给定](http://*.com/q/2973202/2581872)。 – hichris123 2015-04-02 10:51:27