PHP中的json_编码未返回正确结果

PHP中的json_编码未返回正确结果,php,mysql,json,error-handling,Php,Mysql,Json,Error Handling,我试图将数据输入到一个具有CRUD操作的网格中,该网格称为Jquery JTable,但从MYSQL表到Json的Json转换似乎存在某种错误,因为要在表上显示数据,它需要如下所示: { "Result":"OK", "Records":[ {"PersonId":1,"Name":"Benjamin Button","Age":17,"RecordDate":"\/Date(1320259705710)\/"}, {"PersonId":2,"Name"

我试图将数据输入到一个具有CRUD操作的网格中,该网格称为Jquery JTable,但从MYSQL表到Json的Json转换似乎存在某种错误,因为要在表上显示数据,它需要如下所示:

{
    "Result":"OK",
    "Records":[
      {"PersonId":1,"Name":"Benjamin Button","Age":17,"RecordDate":"\/Date(1320259705710)\/"},
      {"PersonId":2,"Name":"Douglas Adams","Age":42,"RecordDate":"\/Date(1320259705710)\/"},
      {"PersonId":3,"Name":"Isaac Asimov","Age":26,"RecordDate":"\/Date(1320259705710)\/"},
      {"PersonId":4,"Name":"Thomas More","Age":65,"RecordDate":"\/Date(1320259705710)\/"}
    ]
}
但每当我在php中实现
json_encode
函数时,它都会给我以下信息:

{
    "Result":"OK",
    "Records":[
        {"0":"1","PersonId":"1","1":"Benjamin Button","Name":"Benjamin Button","2":"17","Age":"17","3":"2011-12-27 00:00:00","RecordDate":"2011-12-27 00:00:00"},
        {"0":"2","PersonId":"2","1":"Douglas Adams","Name":"Douglas Adams","2":"42","Age":"42","3":"2011-12-26 00:00:00","RecordDate":"2011-12-26 00:00:00"},
        {"0":"3","PersonId":"3","1":"Isaac Asimov","Name":"Isaac Asimov","2":"26","Age":"26","3":"2011-12-28 00:00:00","RecordDate":"2011-12-28 00:00:00"},
        {"0":"4","PersonId":"4","1":"Thomas More","Name":"Thomas More","2":"61","Age":"61","3":"2011-12-27 00:00:00","RecordDate":"2011-12-27 00:00:00"},
        {"0":"5","PersonId":"5","1":"Ihsan Oktay Anar","Name":"Ihsan Oktay Anar","2":"44","Age":"44","3":"2012-01-03 20:55:02","RecordDate":"2012-01-03 20:55:02"}
    ]
}
以下是我的PHP代码:

<?php

//Get records from database
$result = mysqli_query($conn, "SELECT * FROM people;");

//Add all records to an array
$rows = array();
while($row = mysqli_fetch_array($result))
{
    $rows[] = $row;
}

//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
$jTableResult['Records'] = $rows;
print json_encode($jTableResult);

?>

该表名为people,它有四个字段:
personId
Name
Age
RecordDate


如果您有任何想法,我们将不胜感激。

您可能希望尝试该功能

因为根据PHP文档,关于:

获取结果行作为关联数组、数字数组或两者兼有

这就是您目前在代码中遇到的情况,因为默认的抓取模式是
MYSQLI\u BOTH

... "1":"Benjamin Button","Name":"Benjamin Button" ...
您也可以使用
mysqli\u fetch\u array()
,但您必须调整fetch模式,然后:

mysqli_fetch_array($result, MYSQLI_ASSOC);

您正在使用返回索引键(
0/1/2/etc.
)的
mysqli\u fetch\u array
),您想要使用
mysqli\u fetch\u assoc()
或者简单地将其更改为:
mysqli\u fetch\u array($result,mysqli\u assoc)
在结果中没有点循环作为数组,如果只是将它们单独存储为一个数组。您不妨只做
$rows=mysqli\u fetch\u array($result)
并使用
$rows这看起来也像是一个评论,在他们开始投票给你之前,只需在上面展开更多的碎片。到目前为止,所有的内容都是这么说的。