在PHP中维护MySQL select的正斜杠 直接来自数据库
当我直接从db中选择时,我得到的正斜杠没有问题 查询:在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:"";} 问题: 如何在
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`
嗨,请阅读编辑的主要目标。谢谢你的指点。总是那些愚蠢的东西让我们最难堪:)