如何从mysql数据库创建json文件?
问题描述:
我想创建一个json文件。如何从mysql数据库创建json文件?
$data = $db->query('SELECT * FROM data ORDER BY id ASC;')->fetchAll(PDO::FETCH_ASSOC);
$json_string = json_encode($data);
$file = 'data.json';
file_put_contents($file, $json_string);
我的结果:
[{
"id": "123",
"timestamp": "2017-05-12 16:22:39",
"name": "bear",
"description": "dance all day"
},
....
}]
但我实际上可以将需要的格式是:
{
"data": [
[
"123",
"2017-05-12 16:22:39",
"bear",
"dance all day"
],
....
]
}
答
你可以做这样的事情:
$results= $db->query('SELECT * FROM data ORDER BY id ASC;')->fetch_all();
$data = array();
foreach ($results as $row) {
$id = $row[0];
$timestamp = $row[1];
$name = $row[2];
$description = $row[3];
$data[] = array($id, $timestamp, $name, $description);
}
$json = json_encode(array("data" => $data));
您的结果不有一个关闭“]”? – user1506104
更新为你 – Jarla
这取决于你需要什么。你需要一个对象数组吗?或者你需要一个包含数组数据的对象吗?你的结果是对象数组。你实际需要的格式是后者。两种有效的json格式。 http://json.org/ – user1506104