我正在使用Android来创建应用。用户答案通过PHP代码存储在服务器上的mySQL上。
function fetch_all_complaints_by_packet($packet) {
global $dBConnection;
$query = "SELECT * FROM ".DB_PREFIX ."complaint ORDER BY id DESC LIMIT 0 , 10";
$result = mysql_query($query,$dBConnection) or die('Errant query: '.$query);
$complaints = array();
if(mysql_num_rows($result)) {
$i = 0;
while($complaint = mysql_fetch_assoc($result)) {
$complaints[$i] = $complaint;
echo ($complaint['details'].'<br>');
$i++;
}
}
//echo json_encode($complaints);
}
以下一行
echo json_encode();
导致错误显示详细信息为NULL
,但
echo json_encode($complaint['details'].'<br>');
打印正确的数据。问题是什么?
答案 0 :(得分:3)
我有类似的东西可能会检查你的身边是否有相同的问题:
当你有一个无效的UTF-8字符串(无效的utf-8字符)并尝试对该数据进行JSON_Encode时,它将返回NULL。
在我的代码中花费了我几个小时的时间才找到它,因为它毕竟是AJAX调用,所以你无法真正看到错误的出现。
我的建议是打开错误登录并显示所有错误,您可能会看到有关失败的UTF-8编码的错误。如果没有,请尝试utf8_decode您的数据,看看它是否会发出我告诉你的错误。