【发布时间】:2014-10-19 08:19:33
【问题描述】:
我需要能够将 json 从 php 传递到客户端,以便 javascript 可以解析代码并返回它。目前,我一直这样做的方式是:
<?php
$mysql_query = $mysqli->query(QUERY GOES HERE);
$array - array();
while($row = $mysql_query->fetch_assoc()){
array_push($array, $row);
}
$json =json_encode($array);
?>
<!-- javascript -->
<script>
var json = <?php echo $json;?>;
//...
</script>
<!--- rest of html --->
这通常有效。但是,查询返回超过 100,000 行,并且 php 当前在创建整个数组时内存不足。我看到有人说要使用ajax。这是唯一的方法吗?如果是这样,我将如何实施它?或者有没有更有效的方法将mysql数据编码成json而不用ajax?
谢谢
【问题讨论】:
-
它是一个网络服务还是你想在你的网站上展示?
-
我不知道为什么你一次需要数百万行,但你可以通过使用偏移量或定义 for 循环限制来制作查询块,并将它们存储在不同的数组中。真的不是一个好习惯。
-
100K 行相当大。 PHP 数组本身会消耗大量内存,并且行可能会越来越大。如果您必须始终发送它们,请考虑SPL
-
@ahmed 本质上是在分析数据。用户提交到数据库,我指定日期范围,我想查看各个用户的数据。
-
@anwerjunaid 我需要根据不同的日期分析数据,根据范围,可以从几百到几千不等。 (这个具体的例子跨越了几个月)。我在想我也需要分块发送它,但是我将如何实现它以便 javascript 可以正常访问它们?我正在考虑的另一个解决方案是将信息写入 xml 文件,然后使用 json 解析它。这似乎是一个合理的解决方案,或者说是更好的解决方案?