【发布时间】:2025-12-02 04:50:01
【问题描述】:
我正在尝试将数据输入到具有 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。
任何想法将不胜感激。
【问题讨论】:
-
您正在使用返回索引键的
mysqli_fetch_array(0/1/2/etc...),您想使用mysqli_fetch_assoc()或只需将其更改为:mysqli_fetch_array($result, MYSQLI_ASSOC) -
如果您只是要将它们作为数组单独存储,那么将结果作为数组循环是没有意义的。你不妨只做
$rows = mysqli_fetch_array($result);并使用$rows;
标签: php mysql json error-handling