获取数组MySQLi+PHP的元素


Getting elements of the array MySQLi + PHP

尝试使用MySQLi和PHP获取数组,这样我就可以处理数组的每个元素(如$array[0]array[1]

$titlesquery = $db->prepare("SELECT title FROM books WHERE id = ?");
$titlesquery->bind_param('i', $id);
$titlesquery->execute();
$titlesquery->bind_result($returned_title);
$json = $titlesquery->fetch($returned_title, MYSQLI_ASSOC);
echo json_encode($json);

这行不通。我收到这样的警告:

mysqli_stmt::fetch()需要0个参数,给定时需要2个参数

如果有帮助的话,只有$titlesquery->fetch();可以正常工作,但我得到的不是一种数组(?)结构,只是该列的单个元素。我犯了什么错?

就像错误消息上所说的那样,它不需要参数:

http://php.net/manual/en/mysqli-stmt.fetch.php

bool mysqli_stmt::fetch(void)

$titlesquery->bind_result($returned_title);
$titlesquery->fetch();
$json = array('title' => $returned_title);

调用->bind_result()之后,它已经绑定了准备好的语句中的结果。

如果您想要获取数组行,并且这对您来说是可用的(需要mysqlnd),请使用->get_result()

$titlesquery = $db->prepare("SELECT title FROM books WHERE id = ?");
$titlesquery->bind_param('i', $id);
$titlesquery->execute();
$result = $titlesquery->get_result();
$json = $result->fetch_assoc();
echo json_encode($json);