【问题标题】:Make PDO powered autosuggest search box work with UTF8 data使 PDO 驱动的自动建议搜索框与 UTF8 数据一起使用
【发布时间】:2016-03-09 17:07:47
【问题描述】:

所以有一个很棒的教程来制作一个带有自动建议 here 的搜索框。它适用于我的 Wordpress MySQL 数据库。

但是问题在于日文字符...我在 PHP 中添加了以下行:$conn->exec("set names utf8"); 这使我能够正确显示日文结果,但是搜索功能不起作用正确:
它只显示整个表格中的所有结果,而不是过滤后的结果

这是我的完整代码:

if (isset($_GET['term'])){
    $return_arr = array();

    try {
        $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD."");
        $conn->exec("set names utf8");
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $stmt = $conn->prepare('SELECT supplier_company FROM wp_teleapo_supplier');
        $stmt->execute(array('term' => '%'.$_GET['term'].'%'));

        while($row = $stmt->fetch()) {
            $return_arr[] =  $row['supplier_company'];
        }

    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }


    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);
}

【问题讨论】:

    标签: pdo utf-8 autocomplete autosuggest utf8-decode


    【解决方案1】:

    问题出在您的 SQL 语句中,您没有 where 子句

    $stmt = $conn->prepare('SELECT supplier_company FROM wp_teleapo_supplier WHERE `term` LIKE ?');
    $stmt->execute(array('%'.$_GET['term'].'%'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2017-06-19
      • 2019-05-13
      • 2018-09-30
      • 2020-04-25
      • 1970-01-01
      相关资源
      最近更新 更多