【发布时间】:2018-02-20 23:52:14
【问题描述】:
我正在尝试从数据库中获取数据并将其存储到 JSON 文件中。 下面的脚本工作正常,但较大的数据表不起作用:
# SELECT Data from Table
$query = "SELECT `Row1`,
`Row2`,
`Row3`
FROM `Table`";
$result = $mysqli->query( $query );
# Declare array
$data = array();
# Put Data into array
while ( $row = $result->fetch_assoc() ) {
$data[] = $row;
}
# Put Data into JSON
$JSONData = json_encode( $data, JSON_PRETTY_PRINT );
但较大的表格不起作用: 致命错误:已用完允许的 104857600 字节的内存大小。
错误发生在“Put Data into array”段中(参见上面的代码)。
还有其他方法可以将数据转换成 JSON 吗?
【问题讨论】:
-
在 php.ini 文件中增加 PHP 允许的内存大小。
-
使用streaming json encoder....之类的东西,但不要尝试在服务器上将其格式化为 PRETTY_PRINT
-
问题不在于将数据转换为 JSON 的方式,您有太多数据。您真的需要同时存储内存中的所有数据吗?
-
我需要将一个大表从服务器 A 传输到服务器 B,我认为 JSON 可以做得很好。
-
逐个转移?一次或多次记录数千条记录,然后再次