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%"