无法在数据库中获取列数

时间:2014-09-03 15:02:42

标签: php mysql sql

我正在尝试拉出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中给出

3 个答案:

答案 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