更新字段时出现未知警告

时间:2011-08-21 13:48:04

标签: php mysql

这是什么类型的错误,我的意思是在更新字段时,如果我使用'',我收到此错误。

  

警告: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)

4 个答案:

答案 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的非常受欢迎的问题。这表示您的查询失败,因此$resultfalse

添加

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()会在successFALSE失败时返回资源。检查是否FALSE === $result