我的网络服务器没有mysqlnd
API扩展程序,因此我无法使用它,并希望采取相应的解决方法。
当前给出错误:
$postid = $_GET['p'];
$stmt = $conn->prepare('SELECT * FROM posts WHERE post_id = ?');
$stmt->bind_param('s', $postid);
$stmt->execute();
$result = $stmt->get_result();
while($postRows = $result->fetch_assoc()){
$posts[] = $postRows;
}
解决方法:
$postid = $_GET['p'];
$stmt = $conn->prepare('SELECT * FROM posts WHERE post_id = ?');
$stmt->bind_param('s', $postid);
$stmt->execute();
$stmt->bind_result($post_id, $post_submitter_id, $post_title, ... [etc]);
while($stmt->fetch()){
$posts[] = $postRows; // ????
}
如何在新的解决方法中创建数组$posts
?
答案 0 :(得分:1)
http://php.net/manual/en/mysqli-stmt.bind-result.php
此链接提供了循环结果集的示例。你可以这样做。
$stmt->bind_result($post_id, $post_submitter_id, $post_title, ... [etc]);
while($stmt->fetch())
{
$posts[] = [
'post_id' => $post_id,
'post_submitter_id' => $post_submitter_id,
...
];
}