【发布时间】:2017-02-24 10:23:11
【问题描述】:
在使用 JSON/PHP 时,我是个新手。我一直试图根据这个答案让它工作。
How to generate .json file with PHP?
我正在尝试查询 MySQL 数据库以将其以 JSON 格式输出,而无需将其写入新文件 I.E. file.json 因为我正在提取动态数据。我可以创建一个创建 json 数组的脚本,但是我需要 JSON 格式的输出。我在下面的示例链接中使用的脚本连接到数据库,但是它没有填充数据。它只是给了我这个输出。我添加了数据库连接检查以检查脚本是否连接到数据库。
连接成功{"streamers":[]}
这是我目前正在使用的代码。有没有人可以告诉我我缺少什么并且可以改进。出于安全原因删除了数据库信息。
<?php
header('Content-type:application/json;charset=utf-8');
//Make connection to database
$db=new PDO('mysql:dbname=streamdb;host=localhost;','root','');
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
echo "Connected successfully";
//Prepare the query for analyzing
$sql=$db->prepare('select * from maintable');
$response = array();
$streamers = array();
$result=mysql_query($sql);
while($sql=mysql_fetch_array($result))
{
$displayname=$row['DisplayName'];
$streamkey=$row['StreamKey'];
$streamers[] = array('DisplayName'=> $displayname, 'StreamKey'=> $streamkey);
}
$response['streamers'] = $streamers;
echo stripslashes(json_encode($response));
?>
-谢谢!
【问题讨论】:
-
在发送 JSON 标头时不能回显 JSON 和纯文本。它是格式错误的 JSON。
-
不要使用stripslashes,
json_encode()会为你处理。 -
看起来你的“$row”变量没有在任何地方初始化。应该是:while($row=...)