在MySql数据库中搜索像父亲节这样的字符串

时间:2013-04-26 06:57:11

标签: php mysql phpmyadmin

我有一个列包含字符串父亲节如果只搜索单词父亲查询显示结果父亲节 但如果输入字符串 父亲节 父亲节

无结果显示

我的查询是

select * from temp where title like '%Father's%' datatype = 0

select * from temp where title like '%Father''s%' datatype = 0

select * from temp where title like '%Father\'s%' datatype = 0

3 个答案:

答案 0 :(得分:1)

使用mysql_real_escape_string转义特殊字符

$search = mysql_real_escape_string($search);

使用PDO方式:

$stmt = $db->prepare("SELECT * FROM  `temp` WHERE  `title` LIKE ?");
$stmt->bindValue(1, "%$search%", PDO::PARAM_STR);
$stmt->execute()

注意: Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

答案 1 :(得分:0)

您的疑问

  1. 你在父亲之后关闭一个引用并打破你的查询
  2. 同样的问题
  3. 您无法在'模式中转义LIKE(仅转发%_
  4. 我相信正确的查询,但我没有检查,应该是:

    select * from temp where title like "%Father's%" AND datatype = 0
    

答案 2 :(得分:0)

使用此功能可以确定:

select * from temp where title like "%Father\\'s%" datatype = 0;

这样可行。

对于你的知识,我想建议你,当你在数据库中插入它时,总是使用stripslashes函数来避免斜线。