搜索使用LIKE在mysql查询中不返回任何行,并且在查询中不返回任何带有"\"的值. [英] Search returns no rows in mysql query using LIKE and values having "\"

查看:133
本文介绍了搜索使用LIKE在mysql查询中不返回任何行,并且在查询中不返回任何带有"\"的值.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对mysql中的搜索有一些问题. 以下是我的查询.

I have some problem regarding the search in mysql. Below is my query.

SELECT * FROM table WHERE name LIKE "%admin\'s%";

当我执行此查询时,它将返回零个数据.

When i am executing this query it will return zero data.

实际上,我在数据库中存储了"admin".此"\"是为了防止sql注入.我已经使用mysql_real_escape_string来防止sql注入.

actually i have "admin\'s" stored in db. this "\" is to prevent sql injection. i have used mysql_real_escape_string to prevent the sql injection.

但是当我使用3次对变量加斜杠时,它就起作用了.

but when i use three times addslashes to my variable it works.

所以我下面的查询正在工作.

So my below query is working.

SELECT * FROM table WHERE name LIKE "%admin\\\\\\\'s%";

我上面的查询将返回名称类似于admin的数据.

My above query will return the data with name like admin's.

我没弄错我的地方.

推荐答案

好吧,您不应该在DB admin的..中有这样的数据.最有可能您对字符串进行了两次转义(检查是否没有)在服务器上启用了magic_quotes).

well for one you shouldnt have data like this in your DB admin\'s .. most likely you double escaped your string ( check if you don't have magic_quotes enabled on your server ).

如果您只做

INSERT ... username = "admin\'s";

您将在数据库中拥有用户名值admin的 因此我的建议是继续从数据库中删除斜杠,然后您的第一个查询应该可以正常工作.

you will have in your db the username value admin's so my recomandation would be to go ahead and remove the slashes from your database and then your first query should work.

这篇关于搜索使用LIKE在mysql查询中不返回任何行,并且在查询中不返回任何带有"\"的值.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆