我需要从MySQL输出javascript (数组数组)的数据
我正在使用这个代码,除了REPLACE函数外,它工作正常
我需要修改所有文本进入JS数组的反向彗星' - '按照JS格式。 可用于1 go 中的所有字段。
我需要一个可以转义所有数据的替换函数,即\ -> \\
; ' -> \'
; newline -> \n
$sth=$dbh->prepare('
SELECT GROUP_CONCAT(
"\n[\'",
CONCAT_WS("\',\'", d6id, REPLACE(d6name,"\'","\\\\\'"), d6date),
"\']"
)
FROM d6lastdate
');
$sth->execute();($json)=$sth->fetchrow_array();
['0000000001','CA\'T','2011-09-26'],
['0000000002','CWE','2011-09-23'],
['0000000003','MAT','0000-00-00'],
答案 0 :(得分:5)
答案 1 :(得分:2)
答案 2 :(得分:1)
使用PHP并不总是一个选项(如果您希望存储过程在表中插入行,其中一个或多个字段是json格式的字符串,那该怎么办?)。
你的初始方法几乎是好的...如果你的结果是无效的JSON:
埃里克
编辑:您还需要转义回车符,制表符和其他一些字符。请查看此页面上的字符串定义:http://www.json.org。 您可以使用http://jsonlint.com验证生成的json字符串。
答案 3 :(得分:0)
use Data::Dumper;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 0;
$sth=$dbh->prepare('
SELECT d6tag, d6id, d6name, d6cat, d6date
FROM d6lastdate
ORDER BY d6date
');$sth->execute();
$json=Dumper($sth->fetchall_arrayref);