保持PHP中MySQL select的正斜杠

时间:2018-11-14 07:13:07

标签: php mysql codeigniter

直接从数据库

直接从数据库中选择时,我会得到正斜杠而没有问题。

查询:

SELECT REPLACE(`row`, '"', '\\"') as data FROM `table`

直接查询结果:

a:1:{i:0;s:0:\"\";}

从PHP

但是在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:\"\";}"}

2 个答案:

答案 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),以便它保持正斜杠。