使用准备好的语句 mysqli 获取查询结果

get results of query using prepared statements mysqli

我想使用准备好的语句获取查询结果,但我没有得到任何结果。

问题是我无法获取我的结果。有人可以举例说明如何使用准备好的语句获取查询结果吗?

这是我的代码:

    $sql = "SELECT `username` FROM `usrs` WHERE `username` = ? ";
    $statement = $this->conn->prepare($sql);

    if (!statement)
    {
        throw new Exception($statement->error);
    }

    $statement->bind_param("s",$username);
    $statement->execute();
    $statement->bind_result($user);
    while ($statement->fetch()) 
    {
        printf("%s", $user);
    }

看起来很接近。我加了两行。一行存储结果,另一行是检查以确保您有来自查询的响应。 运行 看看是否有帮助。

$sql = "SELECT `username` FROM `usrs` WHERE `username` = ? ";
  $statement = $this->conn->prepare($sql);

  if (!statement)
  {
      throw new Exception($statement->error);
  }

  $statement->bind_param("s",$username);
  $statement->execute();
  $statement->store_result(); //<-- Added this.
  if($statement->num_rows === 0) exit('No rows');//<--Test to see if you have a result.
  $statement->bind_result($user);
  while ($statement->fetch()) 
  {
      printf("%s", $user);
  }