密码更改器[警告:mysql_num_rows()期望参数1为资源]

时间:2010-09-21 15:45:43

标签: php mysql-num-rows

  

可能重复:
  mysql_num_rows(): supplied argument is not a valid MySQL result resource

我使用简单的自创php脚本将密码更改为我的wow服务器的网站 这是错误:

  

“警告:mysql_num_rows()期望   参数1是资源,布尔值   在D:\ wamp \ www \ password.php中给出   第24行“

密码脚本:

if (isset($_POST['submit'])){  
 change_db($realm_DB);  
 $loginusername = "$acc_name";  
 $loginpass = $_POST['password'];  
 $sha_pass_hash = sha1(strtoupper($loginusername) . ":" . strtoupper($loginpass));  
 $qry=mysql_query("UPDATE `$realm_DB`.`account` SET `sha_pass_hash`='$sha_pass_hash', `v`='', `s`='', WHERE (`username`='$loginusername');");  
 if (mysql_num_rows($qry) == 1){  
?>  
  < script type="text/javascript" >  
  {  
   alert("Successfully changed password!");  
  }  
  < /script>  
< ?php  
}  
}  
?> 

我为脚本类型javascript和php标签添加了空格,因为你可以看到它 无论如何我在“$ qry”之后添加了“或trigger_error(mysql_error()。$ sql)”以查看sql错误。
这是:

  

“注意:您的SQL中有错误   句法;检查手册   对应于您的MySQL服务器   用于正确语法的版本   在'WHERE(username ='ADMIN')'附近   D:\ wamp \ www \ password.php上的第1行   第23行“

我不知道导致这些错误的原因是因为我可以注册并登录我的网站 给你一个帮助!

3 个答案:

答案 0 :(得分:2)

在您的SQL中,您的,子句之前有WHERE无效。

此外,mysql_query会为true查询而不是资源返回falseUPDATE。您应该使用mysql_affected_rows来确保行已更新而不是 mysql_num_rows

检查documentation for mysql_query

答案 1 :(得分:1)

从快速查看它,你有一个逗号,不应该在WHERE关键字之前:

s='' , WHERE

答案 2 :(得分:1)

我建议您的查询抛出错误(即您的SQL字符串无效),因此$ qry变量包含FALSE而不是您期望的结果对象。

你应该先检查一下。如果为FALSE,则可以使用mysql_error()查找实际错误。这将帮助您调试SQL字符串。