更新字段时出现未知警告


Unknown warning while updating field

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

警告:mysql_num_rows()期望参数1是资源,布尔值,在C:'Program Files'xampp'htdocs'shadaab' aaction.php第87行

ON 86-87我有这个查询

$result = mysql_query("SELECT name FROM album WHERE name='$name'");
if(mysql_num_rows($result) != 0)

关于SO的一个很常见的问题。这意味着您的查询失败,因此$resultfalse

添加
if (!$result){
    echo mysql_error();
}

看看错误到底是什么。很可能你在$name变量中有一些非法字符。因此,在将其嵌入查询字符串之前,您需要对其进行mysql_escape_string()

$name= mysql_escape_string($name);

顺便说一句,你的代码受制于sql注入。所以,最好使用prepared_statements

正如文档所说:

对于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语句影响了多少行。

如果用户没有访问查询引用的表(s)的权限,

mysql_query()也会失败并且返回FALSE。

你应该先检查$result !== false

mysql_query对错误返回false。将第一行替换为这样(如果你想知道错误):

mysql_query("SELECT name FROM album WHERE name='$name'") or die(mysql_error());

For SELECT statements mysql_query()successFALSE失败时返回一个资源。检查FALSE === $result