尝试使用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);