为什么我的php返回一个空的JSON数组?

时间:2015-01-17 16:16:32

标签: php mysql json

我正在尝试使用以下代码从Mysql获取Json数据。我已经验证了所选列是否存在。

我搜索了包括SO在内的多个网站,并没有发现任何问题。

我使用了以下问题中给出的示例答案: Here

global $mysqli;
$response = array('faqtbl' => array());

// Query Db
$query = "SELECT ticketID, agentName FROM faqtbl";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_assoc()) {
        $response['faqtbl'][] = array(
            'ticketID'      => $row['ticketID'],
            'agentName'     => $row['agentName']  
            // 'name'    => $row['name']
            // 'number'  => $row['number'],
            // 'address' => $row['address'],
        );
    }

}

// I've added this but it doesn't help
//header('Content-Type: application/json');
echo json_encode($response);

如果我删除了'agentName' => $row['agentName'],它就可以正常工作并以这种方式提取数据:

{"faqtbl":[{"ticketID":"8"},{"ticketID":"12"},....

我正在使用以下内容: php 5.5.9,apache 2.4.7

修改更新:

如果我在while循环中使用以下内容,我会得到正确的数据(没有json编码行):

echo "ticket: " . $row["ticketID"]. " " . $row["agentName"]." " .$row["ticketDate"]. "<br>";

1 个答案:

答案 0 :(得分:-1)

使用json_last_error() 它应该说明问题。

您也可以使用json_last_error_msg()

您的座席字段最有可能包含一些禁用字符。