无法 return 来自 SQL 的数组,只能 returning mysqli_stmt

Unable to return array from SQL, only returning mysqli_stmt

我已经做 SQL 一年多了,并且完全卡住了。出于某种原因,我无法 return 来自此 table 的任何值,因为我收到错误

mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, mysqli_stmt given

我完全不明白为什么会这样,因为我过去曾使用过此类查询 我使用的代码是

  $user = "testuser";
  $q = $conn->prepare("SELECT * FROM users WHERE username = ?");
  $q->bind_param("s", $user);
  $q->execute();
  while($row = mysqli_fetch_array($q))
      var_dump($row);

如果我这样做 var_dump($q),那么我得到一个对象 object(mysqli_stmt)#3 (10),没有错误并且字段数量正确。由于某种原因,我无法从中读取任何内容。

谢谢!

您需要先调用 get_result() 才能获取数据

  $user = "testuser";
  $stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
  $stmt->bind_param("s", $user);
  $stmt->execute();
  $result = $stmt->get_result();
  while($row = $result->fetch_assoc()) {
      var_dump($row);
  }

PS。最好使用 fetch_assoc() 而不是 fetch_array()