如何将DB数据存储为JSON

时间:2017-12-05 07:00:36

标签: php mysql json

在我的项目中,我想将DB数据放到json文件中。我可以成功获取数据库数据,这些数据应该在datagrid.json中。

这是我的PHP代码:

<?php
include("DB.php"); 
$sql="select aa,bb,cc,dd from OA where sysnum='TZ20171204173151317';";
$sel=$conn->query($sql);

$arr=array();
while($row=$sel->fetch(PDO::FETCH_ASSOC))     
{
  $arr[]=$row;
}
$result["rows"]=$arr;

$file='datagrid.json';

file_put_contents($file, $result);

?>

以下是datagrid.json的正确内容:

{"rows":[{"aa":"123.jpg","bb":".jpg","cc":"Tom","dd":"2017-12-04 17:31:51"},
     {"aa":"1.jpg","bb":".jpg","cc":"Stack","dd":"2017-12-04 17:31:56"},
     {"aa":"test.jpg","bb":".jpg","cc":"Jack","dd":"2017-12-04 17:32:00"}
]}

我有chmod of datagrid.json:

chmod 777 datagrid.json

但它失败了。无法创建Datagrid.json。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您无法将数组存储在文件中。相反,您必须使用json_encode()将数组转换为json格式。

<?php
include("DB.php"); 
$sql="select aa,bb,cc,dd from OA where sysnum='TZ20171204173151317';";
$sel=$conn->query($sql);

$arr=array();
while($row=$sel->fetch(PDO::FETCH_ASSOC))     
{
  $arr[]=$row;
}
$result["rows"]=$arr;

$file='datagrid.json';

file_put_contents($file, json_encode($result)); // Convert to json before saving

?>