错误:警告:mysql_num_rows()期望参数1是资源,布尔给出C:\ xampp \ htdocs \ … \ … php在线19
我一直使用mysql_num_rows()
接收一个错误信息,你能帮我弄清楚我的代码出了什么问题吗?
这是我的代码:
<?php //check if the user press submit if (isset($_POST['submit'] )) { $customer = preg_replace('#[^A-Za-z0-9]#i', '', $_POST["username"]); // filter everything but numbers and letters $password = preg_replace('#[^A-Za-z0-9]#i', '', $_POST["password"]); // filter everything but numbers and letters $sql = mysql_query("SELECT id FROM members WHERE username='$customer' AND password='$password' LIMIT 1"); // query the person // ------- MAKE SURE PERSON EXISTS IN DATABASE --------- $existCount = mysql_num_rows($sql); // count the row nums if ($existCount == 1) { // evaluate the count while($row = mysql_fetch_array($sql)){ $id = $row["id"]; } $_SESSION["id"] = $id; $_SESSION["customer"] = $customer; $_SESSION["password"] = $password; header("location: index.php"); exit(); } else { echo 'That information is incorrect, try again <a href="customer_login.php">Click Here</a>'; exit(); } } ?>
我已经尝试过mysql_errno()
,你build议..和它回声1146
当我寻找那个错误时,就是这样说的
1146: Table 'kossu.nonexistenttable' doesn't exist
但我不知道这是什么意思…请帮忙。
可能是mysql_query()
失败了。 在这种情况下,它返回false
。 使用mysql_error()来查找,会发生什么。
当出现错误时, mysql_query()
返回false
而不是资源对象。 在将它传递给mysql_num_rows()
之前,请检查mysql_query()
的返回值。
从文档 :
返回值
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()返回成功的资源,错误时返回FALSE。
所以,你有一个错误。 使用mysql_error()
来找出什么。
mysql_query()
失败。 它返回false
。要查看错误使用mysql_error()
有可能你没有select正确的数据库。 我之前遇到过这样的问题,错误是我select的数据库。
当MySQL查询执行时,预计会返回查询结果。 如果查询未成功执行,则返回False
。 看来你的查询失败,所以它返回False
。 当您尝试使用mysql_num_rows()
对失败的查询进行计数时,它肯定会返回错误。 您的查询中可能有错误。 请检查。
原因可能是SQL查询使用不正确的数据库。 使用完全限定的表名,即databaseName.tableName
。
在你的情况下:
$sql = mysql_query("SELECT id FROM DBName.members WHERE username='$customer' AND password='$password' LIMIT 1");
其中“DBName”是您的数据库名称。