尝试使用 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() expects exactly 0 parameters, 2 given
如果有帮助,只是 $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()
之后,这已经绑定(bind)了您准备好的语句的结果。
如果你想要一个数组行获取并且这对你可用(需要 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);
关于php - 获取数组元素 MySQLi + PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686837/