gpt4 book ai didi

php - 使用 PHP 生成 JSON

转载 作者:行者123 更新时间:2023-11-29 07:26:58 24 4
gpt4 key购买 nike

我的 PHP 有太多查询(比如 20 个),并且每个查询都有一些带有 var 的 echo。我想在单个 JSON 文件中生成包含这些变量的 JSON。

示例:

// QUERY 1

$query = "SELECT * FROM $table1 WHERE DateV = '$dateV' AND StatusV = 'WORKING'";

$result = mysql_query($query) or die("Error : $query. " . mysql_error());

$row = mysql_fetch_array($result);

echo '&Tvar=' . $row['num'];
echo '&Tvarname=' . $row['name'];


// QUERY 2

$query = "SELECT * FROM $table2 WHERE DateV = '$dateV' AND StatusV = 'WORKINGFAST'";

$result = mysql_query($query) or die("Error : $query. " . mysql_error());

$row = mysql_fetch_array($result);

echo '&Bvar=' . $row['something'];
echo '&Bvarname=' . $row['something'];

由于我需要从桌面 AIR 应用程序加载该数据,每 2 秒从多个实例加载一次,我不想让 MYSQL Server 过载。不管怎样,我相信我能做的最好的事情就是生成一个文件并根据需要多次加载该文件。

谢谢!

最佳答案

您可以将值添加到数组并使用 json_encode() 。如果您担心 MySQL 服务器过载,我可以说每 2 秒查询一次不是问题。

缓存结果是一个很好的做法,这样不会每隔几次调用就改变一次。所以你可以看一下memcached或者只是使用简单的文件缓存 file_put_contents()file_get_contents() .

您可以使用类似于下面的代码进行尝试:

$jsonFile = "my.json";// path to your json file
$timeToCache = 1 * 60;// cache time in seconds

// see if the file exists and if the file is older than the time we want to cache
if( file_exists( $jsonFile ) && ( ( time() - filemtime( $jsonFile ) ) > $timeToCache ) ) {
$toJson = array();
// your first query goes here
$row = mysql_fetch_array($result);

$toJson["Tvar"] = $row['num'];
$toJson["Tvarname"] = $row['name'];

// your second query goes here
$row = mysql_fetch_array($result);
$toJson["Bvar"] = $row['something'];
$toJson["Bvarname"] = $row['something'];

// put your json output to some file
$jsonOut = json_encode( $toJson );
file_put_contents( $jsonFile , $jsonOut );
} else {
$jsonOut = file_get_contents( $jsonFile );
}

echo $jsonOut;

您还应该停止使用 mysql_* 函数,因为它们已被弃用:

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used

看看Why should I use prepared statements .

关于php - 使用 PHP 生成 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com