我刚刚从5.3.x升级到5.5.17,以下代码停止工作(我得到一个空白的回复)。
$gestr = mysql_query("SELECT name,age,id FROM users");
$star = array();
while($starid = mysql_fetch_array($gestr)){
$star[] = array('name'=>$starid['name'],'age'=>$starid['age'],'id'=>$starid['id']);
}
$final=array('users'=>$star);
echo json_encode($final);
请注意我已经简化了SQL语句,但我知道它在while循环中一直有效,因为我可以回显$ star [1] [name]并打印一个用户名。
答案 0 :(得分:3)
问题在于json_encode无法解析非UTF8编码的名称。感谢@ChrisForrence建议使用json_last_error();
通过添加utf8_encode();
来修复错误$star[] = array('name'=>utf8_encode($starid['name']),'age'=>$starid['age'],'id'=>$starid['id']);