我正在尝试拉出mysql数据库中看到的行数,但我看到的只是一个错误代码。我已经尝试了所有我知道的东西,我也检查了PHP文档,但无济于事。
以下代码
function signIn($email, $phone, $appName) {
$conn = mysql_connect("localhost", "root", "");
if ($conn) {
$db = mysql_select_db("ahyoxsoft_registration");
}
if ($db) {
$result_set = mysql_query("SELECT id FROM user_registration_info WHERE
email_address =". $email." AND phone_no =".$phone. " LIMIT 1");
//echo ("No of rows :".mysql_num_rows($result_set));
if ( (mysql_num_rows($result_set)) == 1 ) {
$found = mysql_fetch_array($result_set);
$_SESSION['user_id'] = $found['id'];
header("Location: downloads/".$appName);
}//end if
}
mysql_close($conn);
}//end function signIn
错误
警告:mysql_num_rows()要求参数1为resource,boolean 在第25行的C:\ wamp \ www \ ahyoxsoft \ includes \ login.php中给出
答案 0 :(得分:1)
当mysql_query
的结果返回布尔值时,这意味着您的SQL查询不正确;你忘记了引言:
$result_set = mysql_query("SELECT id FROM user_registration_info WHERE
email_address ='". $email."' AND phone_no ='".$phone. "' LIMIT 1");
但是:虽然这可能有效,但它也容易受到其他错误和SQL注入的影响。阅读准备好的语句以及PDO和MySQLi驱动程序。实际上,mysql_*
函数已弃用。
答案 1 :(得分:0)
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句返回 resultset,mysql_query()在成功时返回资源,或者返回FALSE 错误。
您的sql查询执行时出错,因此mysql_query返回false。 检查mysql_error()
答案 2 :(得分:-2)
你已经运行了代码,只有恰好有1行才会获取数组信息。将您的代码更改为以下内容:
if ( (mysql_num_rows($result_set)) >= 1 ) {
$found = mysql_fetch_array($result_set);
$_SESSION['user_id'] = $found['id'];
header("Location: downloads/".$appName);
}//end if