使用LIKE语句进行全文搜索

时间:2019-05-25 07:45:07

标签: php mysql pdo

我想为我的网站创建全文搜索,但是我使用了LIKE语句。现在的问题是我无法搜索多个单词。必须使用like语句,不能与之匹配。

匹配不起作用。因此,我尝试使用LIKE。

if (isset($_POST['frm_search'])) {
          $frm_search = '%' . $_POST['frm_search']. '%';

$stmt = $dbh->prepare("SELECT *
                         FROM tbl_OFFERING o
                         WHERE id LIKE :frm_search
                         OR title LIKE :frm_search");
                $stmt->bindParam(':frm_search', $frm_search);
                $stmt->execute();

此搜索只能在输入一个单词时找到结果,但它也应针对多个单词。

我尝试使用此代码,它非常有帮助,但是我不知道如何同时在表的不同列中进行搜索。

$search = isset($_GET['q']) ? $_GET['q'] : ''; 
$search = strtoupper($search);
$search = strip_tags($search); 
$search = trim($search);
$words = explode(' ', $search);
$words_condition = array();
$arguments = array();
foreach ($words as $word) {
    $words_condition[] = 'name LIKE ?';
    $arguments[] = '%'.$word.'%';
}

$query = $con->prepare('SELECT * FROM `users` WHERE '.implode(' OR ',                         $words_condition));
$query->execute($arguments);

$result = $query->rowCount();
echo $result;

0 个答案:

没有答案