我使用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>');
打印正确的数据。问题是什么?
我有过类似的情况,如果问题是相同的,请检查您这边:
当您有一个无效的UTF-8字符串(无效的UTF-8字符)并尝试JSON_Encode该数据时,它将返回NULL。
我花了几个小时才在我的代码中找到,因为毕竟这是AJAX调用,所以你不能真正看到错误出来。
我的建议是打开错误记录并显示所有错误,您可能会看到关于UTF-8编码失败的错误。如果没有,请尝试utf8_decode您的数据,看看它是否会弹出我告诉您的错误。