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

时间:2017-07-27 06:04:36

标签: php mysql arrays json

我希望使用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");

$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);

3 个答案:

答案 0 :(得分:1)

您的查询错误。将其更改为

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

需要table1.field2而不是table1,field2

答案 1 :(得分:0)

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

的Intead

答案 2 :(得分:0)

除了您的查询错误,我假设您的问题只是输入错误,因为没有人将其列标记为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);