PHP - 使用PHP将MySQL数据转换为特定格式

时间:2014-08-04 14:37:18

标签: php mysql

[UPDATE]

我是PHP的新手。在提出问题之前,我做了很多研究,但我注意到了。 我想使用json_encode,但它会在输出中带引号,所以我问这个问题。

也许问题很简单。但我只是想有机会学习。谢谢。

===================================

MySQL服务器中有一个表,

 col_1       col_2
------------------
2014-08-01    1268
2014-08-01    8900
2014-08-02    32.65
2014-08-03    878

我想在Web浏览器中使用PHP将数据转换为以下格式(不带引号):

[ [2014-08-01,1268], [2014-08-01,8900],[2014-08-02,32.65],[2014-08-03,878] ] 

首先,我使用以下代码,但它不起作用(包括引号)。请帮我一把!感谢。

$sth = mysql_query("SELECT col_1, col_2 from table_A");
$rows = array();
while($line = mysql_fetch_assoc($sth)) {
    array_push($rows, $line);
}
print json_encode($rows);

2 个答案:

答案 0 :(得分:1)

$i = 0;
echo "[ ";
while($line = mysql_fetch_assoc($sth)) {
    if ($i != 0) {
        echo ", ";
    }
    echo $line['col_1'] . "," . $line['col_2'];
    $i++;
}
echo " ]";

答案 1 :(得分:0)

您可以使用与implode相同的串联并添加方括号两次。

每行第一次,然后结果:

$sth = mysql_query("SELECT col_1, col_2 from table_A");
$rows = array();
while($line = mysql_fetch_assoc($sth)) {
    $rows[] = '[' . implode(',', $line) . ']';
}
print '[' . implode(',', $rows) . ']';

使用json_encode()

的解决方案

如果你想使用json_encode()并且确定结果中没有双引号,你可以简单地使用str_replace删除你觉得烦人的双引号:

print str_replace('"', '', json_encode($rows));

注意:

如果您是PHP新手,那么您很有可能让这些mysql_ *功能落后于您。从一开始就学习使用PDO或mysqli。两个现代API都有参数化的预处理语句。通过使用它们,您可以获得更易读的错误代码,并通过将sql语句字符串与用户输入连接来摆脱SQL注入。