2012-02-20 37 views
2

我想从mysqli中的查询返回的行数,我知道我提供了正确的用户ID和密码,但它一直返回0的行数回。我甚至回应了用户ID和绑定到查询的哈希密码,然后在heidiSql中提供它,并且我得到了一行返回。如何检查mysqli是否传递了正确的值

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; 
      } 

     } 

回答

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; 
    } 
} 
相关问题