【问题标题】:Boolean PHP MySQL And OR Not Search布尔 PHP MySQL 和 OR 不搜索
【发布时间】:2012-03-22 10:39:18
【问题描述】:

任何人都可以帮忙,我正在尝试使用 php 构建一个搜索来搜索 mysql 中的文本字段。

我希望用户能够输入一个必须有条件、一个或条件和一个非条件,以及能够搜索字符串,例如:

("这句话" OR "那句话") AND 单词

目前我正在使用下面的示例来生成搜索字符串:

    $all = $row['and_search'] ;
    $any = $row['or_search'] ;
    $none = $row['not_search'];
    if((!$all) || ($all == "")) { $all = ""; } else { $all = "$all"; }
    if((!$any) || ($any == "")) { $any = ""; } 
    if((!$none) || ($none == "")) { $none = ""; } else { $none = "$none"; }

上述方法仅适用于单个单词,但不适用于上述示例的搜索。

任何想法我可以如何改变实现这一目标?

【问题讨论】:

  • 嗯,如果我理解正确的话,你应该使用 javascript + mysql 反射(从 sql 表中获取字段)。使用 javascript,您可以拥有一个添加/删除字段,该字段具有您想要的标准。这非常复杂。您还应该检查是否有人使用分号 (;) 进行黑客攻击,然后键入 DROP DATABASE xxx 或其他内容

标签: php mysql full-text-search


【解决方案1】:

通过空格将 $all、$any 和 $none 剥离到数组中。比像他们一样加入他们

$newAll = '("' . join('" OR "', split(' ', $all)) . '")';

【讨论】:

    猜你喜欢
    • 2013-05-30
    • 2012-05-06
    • 2014-03-30
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    相关资源
    最近更新 更多