使 PDO 驱动的自动建议搜索框与 UTF8 数据配合使用



所以这里有一个关于使用自动建议制作搜索框的很棒的教程。它在我的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);
}

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

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

最新更新