如何检查mysqli中是否传递了正确的值

时间:2012-02-20 13:10:08

标签: php mysqli

我正在尝试计算mysqli中查询返回的行,我知道我提供了正确的用户ID和密码,但它仍然返回0表示返回的行数。我甚至回显了我绑定到查询的用户ID和散列密码,然后在heidiSql中提供它,我得到了一行返回。

if($query = $db->prepare("SELECT user_id, pword_hash FROM tbl_users WHERE user_id=? AND pword_hash=?")){

            $query->bind_param("ss", $user_id, $hash);
            $query->execute();
            echo $query->num_rows;

            if($query->num_rows > 0){
                echo 1;
            }   

        }

1 个答案:

答案 0 :(得分:2)

read the documentation获取此功能('属性')。该页面的评论也是恰当的。

您应该使用$query->store_result();缓冲语句句柄中的整个结果集,以便您可以查看返回的行数。

试试这个:

if($query = $db->prepare("SELECT user_id, pword_hash FROM tbl_users WHERE user_id=? AND pword_hash=?")){
    $query->bind_param("ss", $user_id, $hash);
    $query->execute();
    $query->store_result();
    echo $query->num_rows;
    if($query->num_rows > 0){
        echo 1;
    }   
}