如何解决无法从 SQL 返回数组,只返回 mysqli_stmt
我做 SQL 已经一年多了,现在完全卡住了。出于某种原因,当我收到错误时,我无法从该表中返回任何值
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);
}
附注。最好使用 fetch_assoc()
而不是 fetch_array()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。