Php 在mySQL中搜索包含mySQL\u real\u escape\u string()斜杠的名称
在我的用户表中,我有一个名和姓字段 我也有一个按姓氏搜索的用户,但当有像L'Orange这样的用户在搜索Php 在mySQL中搜索包含mySQL\u real\u escape\u string()斜杠的名称,php,mysql,Php,Mysql,在我的用户表中,我有一个名和姓字段 我也有一个按姓氏搜索的用户,但当有像L'Orange这样的用户在搜索 洛尔 洛尔 洛城 洛城 这段时间不工作 L'O有(这是有道理的,但不是用户会想到的) 那么,我的查询如何解释这一点呢?现在在我的问题中我有 OR (CONCAT(`lName`, ', ', `fName`) LIKE '$term') 我希望搜索lo或l'o能正常工作(我想)有什么理由搜索需要“?你把传入的搜索词应用到mysql\u real\u escape\u字符串上怎么样
- 洛尔
- 洛尔
- 洛城
- 洛城
- L'O有(这是有道理的,但不是用户会想到的)
OR (CONCAT(`lName`, ', ', `fName`) LIKE '$term')
我希望搜索lo或l'o能正常工作(我想)有什么理由搜索需要“?你把传入的搜索词应用到mysql\u real\u escape\u字符串上怎么样
$term = mysql_real_escape_string($term);
然后
应该有用。用户将必须搜索l'o或l'o,但这应该会起作用。是否使用addslashes()筛选$term?如果是,他们应该已经添加了所需的斜杠,如果不是,那么这就是您缺少的(顺便说一句,您有一个SQL注入正在等待发生)。顺便说一句,不要使用addslashes(),至少要使用mysql\u real\u escape\u string(),因为addslashes()不会清理所有内容。不,我没有,但这是有道理的…我使用的是mysql\u real\u escape\u string()-毕竟不仅仅是addslashes()。看起来你从上面的第一条评论中偷了东西,但我会把它作为答案,因为它确实起了作用。
OR (CONCAT(`lName`, ', ', `fName`) LIKE '$term')