在ZF中将mysql group_concat转换为JSON - 结果重复转义反斜杠

时间:2014-11-11 07:48:25

标签: php mysql json zend-framework group-concat

使用MySQL 5.4.14和PHP 5.4.24将应用程序连接到ZF 1.12 LAMP堆栈

我有一个很长的查询,主要是单行结果,有几个多行结果 因此我使用group_concat作为多行结果。

我需要JSON格式的结果 - 所以我使用以下SQL concat查询 直接从MySQL输出JSON格式 - 使用$select = $this->_db->quoteInto("SELECT...")

查询/结果的其余部分没问题,所以我只列出问题行:

GROUP_CONCAT(DISTINCT CONCAT('{name: \"',name,'\", age:\"',age,'\"}') ORDER BY age ASC SEPARATOR '|') AS person_details,

当我爆炸时(使用我的'|'分隔符)结果我看起来像这样:

"person_details": [
            "{name: \"Fred\", age:\"17\"}",
            "{name: \"James\", age:\"23\"}"
],

...结果中重复出现转义字符......

如果我不包含'\'转义字符,则查询不起作用

我试过了:

  • phpMyAdmin中相同的查询没有反斜杠,它工作正常(即结果以正确的JSON格式输出而不重复包含的'\'转义字符)
  • 在ZF中测试"$select = $this->_db->select()""$select = $this->_db->quoteInto("格式的查询 - 两者都给出了相同的结果

1 个答案:

答案 0 :(得分:0)

你试过用#34;相反' ?

GROUP_CONCAT(DISTINCT CONCAT("{name: \"",name,"\", age:\"",age,"\"}") ORDER BY age ASC SEPARATOR "|") AS person_details,