当字符串包含引号时,在引号前添加反斜杠-PHP

当字符串包含引号时,在引号前添加反斜杠-PHP,php,filter,filtering,Php,Filter,Filtering,我正在做一个ajax问题结果系统。当用户在文本区域中键入内容时,结果将自动搜索并输出 问题是,每次用户键入包含“”或“”的问题时,搜索都不成功。是否有任何方法可以在字符串中向“”或“”添加反斜杠,以便忽略它 或者是否存在忽略“”或“”的筛选器 我需要用引号搜索这个问题,因为数据库中的问题包含它们 代码如下: $q = $_POST['q']; // for every " or ' in $q add \ before it $results = array(); $result = array

我正在做一个ajax问题结果系统。当用户在文本区域中键入内容时,结果将自动搜索并输出

问题是,每次用户键入包含“”或“”的问题时,搜索都不成功。是否有任何方法可以在字符串中向“”或“”添加反斜杠,以便忽略它

或者是否存在忽略“”或“”的筛选器

我需要用引号搜索这个问题,因为数据库中的问题包含它们

代码如下:

$q = $_POST['q'];
// for every " or ' in $q add \ before it
$results = array();
$result = array();
$count = 0;
$stmt = $dbh->prepare("SELECT result FROM quest WHERE quest LIKE '".$q."%'");
if($stmt->execute()){
    $result = $stmt->fetchAll(PDO::FETCH_OBJ);
    $count= $stmt->rowCount();
}
if($result != NULL){
    foreach($result as $part){
        foreach($part as $item){
            $results[] = $item;
        }
    }
    echo htmlentities($results[0], ENT_QUOTES, "UTF-8");
}

尝试使用函数

尝试使用函数

您没有正确使用准备好的语句,这就是您出现此问题的原因。如果您正确使用准备好的语句,它们将为您解决此问题。这方面的文档实际上相当不错


编辑:请花时间学习如何正确使用它们。如果不是这样,代码很容易受到SQL注入的影响

您没有正确使用准备好的语句,这就是为什么您会遇到这个问题。如果您正确使用准备好的语句,它们将为您解决此问题。这方面的文档实际上相当不错


编辑:请花时间学习如何正确使用它们。如果不是这样,代码很容易受到SQL注入的影响

你需要使用事先准备好的声明,这就是为什么。MySQL对此表示不满,但您没有给它机会;-)我不同意这是重复的@Fred-ii-。我知道你的意图是最好的,但也许有人不会意识到这与SQL注入几乎是一样的(就像我一样),并会搜索这样的问题:)“现在我明白了。谢谢你的帮助。我会在6分钟后标记为正确。-Dawid Zbiński 5分钟前”-副本是关于什么的,从雨林引进猴子?从你接受的答案来看,这叫什么?因此,你不应该接受这个答案。我觉得你的回答很无礼,但还行。你是这里的老板。你可能是对的。你需要使用一个事先准备好的陈述,这就是为什么。MySQL对此表示不满,但您没有给它机会;-)我不同意这是重复的@Fred-ii-。我知道你的意图是最好的,但也许有人不会意识到这与SQL注入几乎是一样的(就像我一样),并会搜索这样的问题:)“现在我明白了。谢谢你的帮助。我会在6分钟后标记为正确。-Dawid Zbiński 5分钟前”-副本是关于什么的,从雨林引进猴子?从你接受的答案来看,这叫什么?因此,你不应该接受这个答案。我觉得你的回答很无礼,但还行。你是这里的老板。你可能是对的,现在我明白了。谢谢你的帮助。我将在6分钟内标记为正确。现在我明白了。谢谢你的帮助。我将在6分钟内标记为正确。