我試圖從一個sql表中檢索所有記錄並將其作爲json返回,但它保持不返回任何內容,即使sql查詢返回phpMyAdmin中的多行。我甚至嘗試在循環內輸出所有的$id
,但是當我將它作爲數組返回時,它只是返回一個空白頁面。我不知道這是否可能是由數據庫中的$image
引起的。mysqli準備不會輸出爲json
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
include('config.php');
$stmt = $db->prepare('SELECT * FROM camps');
$stmt->execute();
$stmt->bind_result($id, $title, $body, $long, $lat, $img);
$rows = array();
while ($stmt->fetch()) {
$rows[] = array(
'id' => $id,
'title' => $title,
'body' => $body,
'long' => $long,
'lat' => $lat,
'image' => $img
);
echo $img;
}
$stmt->close();
$db->close();
echo json_encode($rows);
?>
您的表格中恰好有6列?最好在你的'select'語句中明確列出列名。 – trincot
我認爲你的問題可能是'json_encode'。如果你只是'print_r($ rows)',你會得到一個輸出嗎? – trincot
該手冊確實有一個'SELECT *'方法示例http://php.net/manual/en/mysqli-stmt.bind-result.php,但不像你想在這裏使用它。看看它的起始位置,因爲*「很多人不喜歡bind_result如何與預處理語句一起工作!」* –