直接从数据库中选择时,我会得到正斜杠而没有问题。
查询:
SELECT REPLACE(`row`, '"', '\\"') as data FROM `table`
直接查询结果:
a:1:{i:0;s:0:\"\";}
但是在PHP(特别是CI)中完成时,正斜杠消失了。 查询字符串:
"SELECT REPLACE(`row`, '\"', '\\\"') as data FROM `table`"
从PHP结果查询:
a:1:{i:0;s:0:"";}
问题: 如何在PHP中保持正斜杠?
注意:我试图将group_concat与其他值作为json格式字符串,所以我需要使用斜杠以免破坏格式,请采样完整输出:
{"field_1":"Some Value","field_2":"a:1:{i:0;s:0:\"\";}"}
答案 0 :(得分:1)
您的两个查询不相等:您的PHP代码计算为
php > echo "SELECT REPLACE(`row`, '\"', '\\\"') as data FROM `table`";
SELECT REPLACE(`row`, '"', '\"') as data FROM `table`
您只能转义一个斜线;您需要额外的一对:
"SELECT REPLACE(`row`, '\"', '\\\\\"') as data FROM `table`"
导致原始查询:
php > echo "SELECT REPLACE(`row`, '\"', '\\\\\"') as data FROM `table`";
SELECT REPLACE(`row`, '"', '\\"') as data FROM `table`
答案 1 :(得分:0)
我不知道这是什么目标,但也许您可以使用此兄弟。结果与正斜杠相同。
json_encode();
选择时,只需返回json_encode($ value),以便它保持正斜杠。