准备语句而不使用get_result()

时间:2015-07-30 02:17:50

标签: php mysql

我的网络服务器没有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

1 个答案:

答案 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,
         ...
     ];
}
相关问题