如何用php pdo进行全文搜索?

时间:2015-05-12 06:52:01

标签: php mysql search pdo

因此,我目前正在搜索网站时遇到问题。所以我目前的搜索将实现这一点; 用户输入" crik"它会回归"板球"搜索。 但是,如果用户输入"蟋蟀"它不会回来"板球"搜索。 我如何让它工作? 我目前的PHP代码是;

      $searchQ = $_GET['search'];  
      $ssss = $pdo->prepare('SELECT * FROM listing WHERE name LIKE :search');                                    
      $ssss->bindValue(':search', "%" . $searchQ . "%");        
      $ssss->execute();

我也试过了,但它没有回复任何东西;

$ssss = $pdo->prepare('SELECT  * FROM listing WHERE MATCH(name) AGAINST (:search IN BOOLEAN MODE) ');

2 个答案:

答案 0 :(得分:0)

如果您希望输入crickets与名称cricket匹配,您也可以使用名称列上的通配符,例如:

$ssss = $pdo->prepare("SELECT * FROM listing 
                       WHERE name LIKE :search1 
                       OR :search2 LIKE CONCAT('%', name, '%')");
$ssss->bindValue(':search1', '%' . $searchQ . '%');
$ssss->bindValue(':search2', $searchQ);

或更短且更一致(我不确定绑定是否会以这种方式工作,但您可以尝试):

$ssss = $pdo->prepare("SELECT * FROM listing 
                       WHERE name LIKE CONCAT('%', :search, '%')
                       OR :search LIKE CONCAT('%', name, '%')");
$ssss->bindValue(':search', $searchQ);

答案 1 :(得分:0)

您可以更改搜索字符串

$searchQ = $_GET['search'];
$searchArr = str_split($searchQ );
$searchQ_new = "";
foreach($searchArr as $alpha)
{
        $searchQ_new .= $alpha . "%";
}

现在,您可以使用代码搜索$ searchQ_new