1

有人可以告诉我为什么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

4 回答 4

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。

于 2013-03-31T16:07:07.313 回答
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;
    }
}
于 2013-03-31T16:08:58.057 回答
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";

nb DISTINCT 和计数。其余的应该解决这个问题。可能有帮助。干杯。

于 2013-03-31T16:16:29.093 回答
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";

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

于 2013-03-31T16:20:01.047 回答