Php 关于查找文本的mysQL查询帮助
我需要获取Php 关于查找文本的mysQL查询帮助,php,sql,mysql,escaping,Php,Sql,Mysql,Escaping,我需要获取eventname字段包含此文本的所有行(包括单引号) 我尝试了这个,但它给出了错误: select * from fab_scheduler where eventname like '%\'s Birthday%' 如何构造这样的查询 谢谢请使用双引号或转义单引号 select * from fab_scheduler where eventname like "%'s Birthday%" select * from fab_scheduler where eventname
eventname
字段包含此文本的所有行(包括单引号)
我尝试了这个,但它给出了错误:
select * from fab_scheduler where eventname like '%\'s Birthday%'
如何构造这样的查询
谢谢请使用双引号或转义单引号
select * from fab_scheduler where eventname like "%'s Birthday%"
select * from fab_scheduler where eventname like '%''s Birthday%'
如果要在SQL中包含,则需要: 有几种方法可以包括 字符串中的引号字符:
- 带“.”的字符串中的“.”可以写为““””
- 带“”的字符串中的“”可以写为“”
- 在引号字符前面加一个转义字符(\)
- 用“”引用的字符串中的“%”不需要特殊处理,并且 不需要加倍或逃脱。在 同样,在带引号的字符串中使用“.” 带“'”的不需要特殊处理
此外,如果在程序中构造SQL,则应该强烈考虑通过使用编程语言中的等价物来避免进入SQL查询的变量。如果不这样做,您的应用程序将很容易受到控制上述变量数据源的人(可能是您的用户;请记住,根据具体情况,“您的用户”可能意味着“整个互联网”)的SQL注入攻击
编辑:引用了上面的dev.mysql.com说明。看看你的用户名,我可以放心地说,
mysql\u real\u escape\u string
(见下面的答案)也可以在PHP中找到::-)@Jon:Yup,你是对的,完全忘记了这一点。。。谢谢你。
select * from fab_scheduler where eventname like "%'s Birthday%"
select * from fab_scheduler where eventname like '%''s Birthday%'
select * from fab_scheduler where eventname like "%'s Birthday%"