微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP mysqli查询搜索反斜杠

如何解决PHP mysqli查询搜索反斜杠

我有一个用于查询json字符串的SQL查询,这些json字符串中包含反斜杠以避开引号。

我正在使用的SQL查询可以找到我想要的内容,但由于要在查询中使用反斜杠(即文字而不是转义字符),因此我在努力使PHP MysqLi查询正常工作,而且还必须使用反斜杠在MysqLi查询中转义引号。

所以我要搜索的字符串是这个,反斜杠实际上出现在字符串中:

[插入= \“用户窗体\”,id = \“ 1 \”]

我使用的SQL查询是:

SELECT id,name FROM `posts` WHERE content LIKE '%[insert=\\"userform\\",id=\\"1\\"]%' ESCAPE "|"

这可以通过更改认的exape字符来查找所需的行。但是,当我尝试在PHP中使用相同的查询时,我不得不对引起问题的LIKE语句周围的单引号进行转义。

$MysqLi->query('SELECT id,name FROM `posts` WHERE content LIKE \'%[insert=\\"userform\\",id=\\"1\\"]%\' ESCAPE "|"');

我正在尝试使用MysqLi_real_escape_string,因为我认为这可以满足我的需要,但还无法正确完成,我在做什么错了?

解决方法

这是因为php的转义字符是反斜杠,因此您也需要将其转义。

$mysqli->query('SELECT id,name FROM `posts` WHERE content LIKE \'%[insert=\\\\"userform\\\\",id=\\\\"1\\\\"]%\' ESCAPE "|"');

检查执行结果以检查最终结果是否良好的一种很好的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。