gpt4 book ai didi

php - 从MySQL临时表获取数据的问题

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

我在从临时表获取 json 数据时遇到问题。正如你所看到的,我尝试在 $query2 生成临时表 charts_econo ,在第二个文件中,我尝试将表解析为 JSON,但当我运行时什么也没得到第一个 PHP (createTemp.php),最后是第二个 PHP (testTemp.php)。

这是我的 createTemp.php

<?PHP
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$collm = $_POST['column'];
$query = "SELECT x, y FROM econo WHERE ".$collm."=1";
$results = $con->query($query);
$return = array();
if($results) {
while($row = $results->fetch_assoc()) {
$return[] = array((float)$row['x'],(float)$row['y']);
}
}
$query2 = "CREATE TEMPORARY TABLE IF NOT EXISTS `charts_econo` (
`econo_sum_projects` decimal(12,7) NOT NULL,
`econo_sum_powerline` decimal(12,7) NOT NULL,
`econo_sum_roads` decimal(12,7) NOT NULL,
`econo_sum_cost` decimal(12,7) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AS(SELECT COUNT(project),
SUM(powerline_length),
SUM(road_length),
SUM(cost_per_year)
FROM econo WHERE $collm=1;";
$con->query($query2);
$con->close();
echo json_encode($return);
?>

这是 testTemp.php

<?PHP
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$query = "SELECT * FROM `charts_econo`";
$results = $con->query($query);

if($results) {
while($row = $results->fetch_assoc()) {
$json= json_encode($row);
}
}
$con->close();
echo $json;
?>

最佳答案

来自 mysql 文档:

A TEMPORARY table is visible only to the current session, and is dropped automatically when the session is closed.

因此,第二个脚本(在大多数情况下)无法访问第一个脚本创建的表!您必须在第一个脚本中查询并输出 JSON,或者直接在任一脚本中输出第一个脚本中的 CREATE TEMPORARY TABLE 中的 SELECT 结果(即不使用任何临时表)。

要将两者输出到同一个 JSON 中,您可以创建两者的数组:

echo json_encode([$results1, $results2]);

或者关联数组/对象:

echo json_encode({'results1':$results1, 'results2':$results2});

这改变了客户端在解码后访问每个部分的方式:

decoded_json[0]

decoded_json['results1']

关于php - 从MySQL临时表获取数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24535867/

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