我有一个不起作用的脚本我希望你的一些开发人员知道解决方案。
<?php
//Create Database connection
$db = mysql_connect("localhost","d","d");
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
//Select the Database
mysql_select_db("d",$db);
//Replace * in the query with the column names.
$result = mysql_query("select * from events", $db);
//Create an array
$json_response = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$row_array['id'] = $row['id'];
$row_array['title'] = $row['title'];
$row_array['start'] = $row['start'];
$row_array['end'] = $row['end'];
//push the values in the array
array_push($json_response,$row_array);
}
echo json_encode($json_response);
$file = 'events.json';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
// Write the contents back to the file
file_put_contents($file, $json_response);
//Close the database connection
?>
但是events.json是空的?有谁知道解决方案?
答案 0 :(得分:0)
使用它:
$json_response = json_encode($json_response);
答案 1 :(得分:0)
首先,
echo json_encode($json_response);
file_put_contents($file, $json_response);
这不是写json你应该这样做
file_put_contents($file, json_encode($json_response));
也许是问题所在,你无法将数组写入文件。
第二,你错过了一些代码吗?
$current = file_get_contents($file);
// Append a new person to the file
我们没有看到要附加的代码,您的代码只是用数组$ json_response替换内容(而不是json编码的数组)。
答案 2 :(得分:0)
您尚未将json编码的响应存储在任何位置。在echo语句下方,添加以下行:
$json_response = json_encode($json_response);
答案 3 :(得分:0)
您写道:// Append a new person to the file
但永远不会追加,而是替换文件的内容
当您致电file_put_contents($file, $json_response);
时,您还没有将$json_response
变成json字符串。
尝试更改:
echo json_encode($json_response);
要:
$json_response = json_encode($json_response);
将数据正确转换为json-string。
要将数据附加到文件(现在我将假设文件包含与您尝试编写的数据格式相同的数据),请像使用file_get_contents
一样加载它,然后转换内容为关联数组:json_decode($dataFromFile, true);
(true
标志作为第二个参数使返回值成为关联数组而不是对象)并合并这两个列表,然后再将其写入文件。 / p>