我在PHP中有這個代碼,我試圖根據預準備語句的結果來創建一個JSON。問題是它正在返回一個完全白頁,沒有出現。如何從PHP中的MySQL準備語句創建JSON?
$con = mysqli_connect(HOST,USER,PASS,DB);
$batch_sql = "select * from batchrecord";
$batch_res = mysqli_query($con,$batch_sql);
$row = mysqli_fetch_array($batch_res);
$batch_num = $row[0];
$start = $batch_num * 100;
$end = $start + 99;
if ($stmt = mysqli_prepare($con, "select tweetid, body from tweet where id >=
? and id <= ?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "ii", $start, $end);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $tweetid, $body);
$result = array();
/* fetch value */
while(mysqli_stmt_fetch($stmt)){
array_push($result,
array('Id'=>$tweetid,
'Body'=>$body,
));
}
/* close statement */
mysqli_stmt_close($stmt);
echo json_encode(array("result"=>$result), JSON_UNESCAPED_UNICODE);
}
else{
echo "Statement Prepare Error";
}
mysqli_close($con);
我已經由$ tweetid和$體內的含量要打印的同時語句測試中,它工作正常,這意味着問題不在於查詢的事,但與陣列。我錯過了什麼?
謝謝!
注意:'mysqli'的面向對象的接口明顯不那麼冗長,使得代碼更易於閱讀和審計,並且不容易與陳舊的'mysql_query'接口混淆。在你過於投入程序風格之前,它是值得轉換的。例如:'$ db = new mysqli(...)'和'$ db-> prepare(「...」)過程接口是PHP4時代的一個神器,當引入mysqli API時,不應該在新的代碼 – tadman
我不明白你爲什麼有兩個查詢 – Strawberry
我會嘗試面向對象的,然後不知何故程序風格似乎更熟悉我 至於兩個查詢,是的,我注意到,我只能做一個沒有所有這些複雜因素,我很匆忙,沒有想太多,謝謝! –