在PHP中维护MySQL select的正斜杠 直接来自数据库

在PHP中维护MySQL select的正斜杠 直接来自数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,当我直接从db中选择时,我得到的正斜杠没有问题 查询: 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:"";} 问题: 如何在

当我直接从db中选择时,我得到的正斜杠没有问题

查询:

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中维护正斜杠


注意:我试图创建一个包含其他值作为json格式字符串的组,因此我需要斜杠,这样它就不会破坏格式,完整输出示例:

{"field_1":"Some Value","field_2":"a:1:{i:0;s:0:\"\";}"}

我不明白这是什么目标,但也许你可以用这个兄弟。与正向斜杠的结果相同

json_encode(); 

选择时,只需返回json_encode($value),这样它就可以保持前斜杠。

您的两个查询并不等价: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`

嗨,请阅读编辑的主要目标。谢谢你的指点。总是那些愚蠢的东西让我们最难堪:)