我在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
我会尝试面向对象的,然后不知何故程序风格似乎更熟悉我 至于两个查询,是的,我注意到,我只能做一个没有所有这些复杂因素,我很匆忙,没有想太多,谢谢! –