[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);
答案 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注入。