加快自动填充输入框的查询速度

时间:2014-11-11 18:34:16

标签: php autocomplete

我正在尝试为我的搜索框实现自动完成功能。

我有一个带有书籍表的数据库,所以当用户开始在搜索框中输入内容时,我希望能够向他们显示一个建议框,其中包含前6个标题,这些标题与其匹配的单词相匹配键入。

我使用Ajax查询具有以下代码的PHP:

    $terms           = explode( " ", $data->word );
    $terminos        = '';
    foreach( $terms as $term ) {
        if ( $term == '' || $term == ' ' || strlen($term)==0 ) continue;
        if ( $terminos != '' ) $terminos .= " AND title LIKE '%$term%' ";
        else $terminos .= " title LIKE '%$term%' ";
    }
    $pdo = MySQLUtil::getConnection();
    $query = "SELECT title
                FROM books
                WHERE :terminos
                LIMIT 6";

    $stmt = $pdo->prepare($query);
    $stmt->bindParam(':terminos',   $terminos,      PDO::PARAM_STR);
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if ($result) {
        return $result;
    } else {
        return false;
    }

此解决方案非常慢,需要知道如何加快查询速度。

有什么想法吗?

提前致谢。

0 个答案:

没有答案