mysql:mysql_result返回false值

时间:2013-03-31 16:04:17

标签: php mysql

有人可以告诉我为什么mysql_result($)会返回3而不是1或0,并且如果有更好的函数来验证检索函数SELECT是否返回某些内容(如果id存在)以及如何将其存储在变量上。谢谢。     

    require_once __DIR__ . '/db_connect.php'; 
    $db = new DB_CONNECT();
    $select  = mysql_query("SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password'");
    echo mysql_result($select,0);
    if (mysql_result($select, 0) == '1'){
        echo "True";
    }else 
        echo "False";

4 个答案:

答案 0 :(得分:0)

$db = new DB_CONNECT();
    $select  = mysql_query("SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password'");
   $result = mysql_result($select);
    echo var_dump($result); // will help you debug the your queries,

另外,检查您是否已将自动增量设置为您的表,也许您具有相同ID的相同用户名/密码。

答案 1 :(得分:0)

你可以使用mysql_num_rows,它会返回查询中的行数,我在这里给你举个例子:

public function numberRows($id) {
    $result = mysql_query("SELECT * from table WHERE id = '$id'");
    $no_of_rows = mysql_num_rows($result);
    if ($no_of_rows > 0) {
        // there is data
        return true; 
    } else {
        // there is no data
        return false;
    }
}

答案 2 :(得分:0)

我认为@php NoOb有一个观点:

        require_once __DIR__ . '/db_connect.php'; 
        $db = new DB_CONNECT();
        $select  = mysql_query("SELECT count(distinct `id`) FROM `users` WHERE `username`='$username' AND `password`='$password'");
        echo mysql_result($select,0);
        if (mysql_result($select, 0) == '1'){
            echo "True";
        }else 
            echo "False";

n.b。 DISTINCT和COUNT。其余的应该解决这个问题。 可能有帮助。欢呼声。

答案 3 :(得分:0)

我会这样做:


    require_once DIR . '/db_connect.php'; 
    $db = new DB_CONNECT();
    $select  = mysql_query("SELECT id FROM users WHERE username='$username' AND password='$password'");
    if (mysql_num_rows($select) == '1'){
        echo "True";
    }else 
        echo "False";

如果您需要返回结果的值,请使用不同的方法。