使用php将大量mysql记录转换为json

Posted

技术标签:

【中文标题】使用php将大量mysql记录转换为json【英文标题】:Convert Large number of mysql records to json using php 【发布时间】:2018-01-02 16:41:51 【问题描述】:

我想使用 PHP 将大量 MySQL 数据转换为 JSON我有 20K 及以上的记录,但我无法将 mysql 数据转换为 JSON。我想创建 REST API,所以需要以 JSON 格式发送(响应)数据。

我试过了,但没有得到输出:

代码:

$query = mysql_query("SELECT table1.field1, table1,field2, table1.field3, table2.field4 FROM table1 LEFT JOIN table2 ON table1.field1 = table2.field1"); $结果 = 数组(); 而($row = mysql_fetch_assoc($query)) $result[] = array('Name' => $row["field1"], 'Last Name' => $row['field2'], 'country' => $row["field3"], 'location' => $row["field4"]); 回声 json_encode($result);

【问题讨论】:

不要使用 mysql_* 函数。使用 mysqli_* 或 PDO 函数 我用 mysqli 和 PDO 尝试了兄弟,但仍然没有得到输出 您的 SQL 语法有错误 - table1,field2 可能应该是 table1.field2 而不是 json 编码,var_dump 结果。我认为你有一些坏字符在那里破坏了 jsin_encode。 在此期间,在将数组添加到 $result 之前对数组进行 json_encode,然后打印该行的 id。最终它会在完成之前中断,这将是你的问题行。 【参考方案1】:

除了您的查询错误之外,我假设这只是您问题中的一个输入错误,因为没有人将他们的列标记为 field1、field2 等。

您面临的问题很可能是编码问题。尝试以下将结果编码为 UTF8 并有望生成有效的 JSON。

mysql_set_charset ("UTF8");
$query = mysql_query("SELECT table1.field1, table1field2, table1.field3, table2.field4 FROM table1 LEFT JOIN table2 ON table1.field1 = table2.field1");

$result = array();

while($row = mysql_fetch_assoc($query))


    $result[] = array('Name' => $row["field1"], 'Last Name' => $row['field2'], 'country' => $row["field3"], 'location' => $row["field4"]);


echo json_encode($result);

【讨论】:

完成。我已经删除了坏字符。【参考方案2】:

您的查询是错误的。改成

SELECT table1.field1, table1.field2, table1.field3, table2.field4 FROM table1 LEFT JOIN table2 ON table1.field1 = table2.field1

需要table1.field2 而不是table1,field2

【讨论】:

已修改。但没有得到输出 代码中有错误,在脚本的第一行写入ini_set("display_errors",1); 一段时间,这将在页面上显示错误。 @Arpita 建议启用错误。然后尝试解决它。​​ @Arpita。没有错误。【参考方案3】:

你有 mysql 查询语法错误。而不是table1,field2 使用table1.field2

【讨论】:

以上是关于使用php将大量mysql记录转换为json的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中将MySQL记录集转换为JSON字符串[重复]

php - 将 mysql 数据转换为 json 对象

使用 Json.net 将大量数据流式传输为 JSON 格式

使用 PHP 从 MySQL 结果输出复杂的 JSON

查询Mysql表之后将结果转换为json时如何能够保持字段的原有数据类型?

PHP mySql 数据到 JSON 文件