这是什么类型的错误,我的意思是在更新字段时,如果我使用'',我收到此错误。
警告:mysql_num_rows()要求参数1为资源,布尔值在第87行的C:\ Program Files \ xampp \ htdocs \ shadaab \ aaction.php中给出
ON 86-87我有这个查询
$result = mysql_query("SELECT name FROM album WHERE name='$name'");
if(mysql_num_rows($result) != 0)
答案 0 :(得分:1)
正如documentation所说:
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE 。
对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()在成功时返回TRUE,或者在错误时返回FALSE 。
返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。
使用mysql_num_rows()查找为SELECT语句或mysql_affected_rows()返回的行数,以找出DELETE,INSERT,REPLACE或UPDATE语句影响的行数。
如果用户没有访问查询引用的表的权限,mysql_query()也将失败,将返回FALSE。
您应首先检查$result !== false
。
答案 1 :(得分:1)
关于SO的非常受欢迎的问题。这表示您的查询失败,因此$result
为false
。
添加
if (!$result){
echo mysql_error();
}
查看错误究竟是什么。很可能你在$name
变量中有一些非法字符。因此,在将其嵌入查询字符串之前,您需要mysql_escape_string()
它。
$name= mysql_escape_string($name);
顺便说一句,您的代码受SQL注入的影响。所以,你最好使用prepared_statements
答案 2 :(得分:1)
mysql_query
在错误时返回false。用这个替换第一行(如果你想知道错误):
mysql_query("SELECT name FROM album WHERE name='$name'") or die(mysql_error());
答案 3 :(得分:0)
SELECT statements mysql_query()
会在success
和FALSE
失败时返回资源。检查是否FALSE === $result