我正在尝试计算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;
}
}
答案 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;
}
}