无法 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()
我已经做 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()