通过prepare语句mysqli php获得不需要的结果

通过prepare语句mysqli php获得不需要的结果,php,mysql,mysqli,Php,Mysql,Mysqli,您好,我是PHP新手,我正在尝试编写登录的prepare语句,但正如下面给出的代码,我的查询并没有得到任何行,而是得到field_计数 如果我把它放在 SELECT * FROM users WHERE UserName = 'DemoUser' 在直接数据库中,我得到一行,但这里$stmt->num_rows是零。我错过了什么 // in connections.php $dbh = new mysqli($host, $username, $password, $database); i

您好,我是PHP新手,我正在尝试编写登录的prepare语句,但正如下面给出的代码,我的查询并没有得到任何行,而是得到field_计数

如果我把它放在

SELECT * FROM users WHERE UserName = 'DemoUser'
在直接数据库中,我得到一行,但这里$stmt->num_rows是零。我错过了什么

// in connections.php
$dbh = new mysqli($host, $username, $password, $database);

include('connections.php');
include('config.php');
include('comman_functions.php');

if(isset($_POST['password']) && $_POST['password']!=''
    && isset($_POST['username']) && $_POST['username']!=''
    && isset($_POST['location']) && $_POST['location']!='') {

    $username = "DemoUser";
    $stmt = $dbh->prepare("SELECT * FROM users WHERE UserName =? ");
    $stmt->bind_param("s", $username);
    $stmt->execute();  
    error_log($stmt->num_rows); 
    if($stmt->num_rows>0){
    $row = $stmt->fetch();
    error_log("logged in!!!");

    $stmt->close();

    } else {
        $_SESSION['error'] = 'Invalid Username or Password';
        header('Location:index.php');
    }
} else {
    $_SESSION['error'] = 'Please provide Username and Password';
    header('Location:index.php');
}
试试这个

您需要添加$stmt->bind\U结果;$stmt->execute之后


如果您在使用此num\u行时遇到问题,则必须首先声明->存储\u结果


问题可能是$stmt->num\u行。请参阅我正在使用mysqli$dbh=newmysqli$host、$username、$password、$database;感谢ans先生,但我使用的是$dbh=newmysqli$host、$username、$password、$database;row count是PDO函数Hey我刚才试过你说的..但仍然一样没有从数据库中获取数据,但能够从$stmt->field_counthey中找到列数的计数我获取了row count,但无法从该对象获取数据:
$dbh = new mysqli($host, $username, $password, $database);// in connections.php



<?php
  include('connections.php');
  include('config.php');
  include('comman_functions.php');

  if(isset($_POST['password']) && $_POST['password']!='' && isset($_POST['username']) && $_POST['username']!='' && isset($_POST['location']) && $_POST['location']!=''){

    $username = "DemoUser";
    $stmt = $dbh->prepare("SELECT * FROM users WHERE UserName =? ");
      $stmt->bind_param("s", $username);
      $stmt->execute();  
      $stmt->bind_result();
      error_log($stmt->num_rows); 
    if($stmt->num_rows>0){
      $row = $stmt->fetch();
        error_log("logged in!!!");

      $stmt->close();

    }else{
      $_SESSION['error'] = 'Invalid Username or Password';
      header('Location:index.php');
    }
  }else{
    $_SESSION['error'] = 'Please provide Username and Password';
    header('Location:index.php');
  }

?>
<?php
$mysqli = new mysqli("localhost","root", "", "tables");

$query = $mysqli->prepare("SELECT * FROM table1");
$query->execute();
$query->store_result();

$rows = $query->num_rows;

echo $rows;