【发布时间】:2021-10-02 19:44:07
【问题描述】:
我在 MySQL 表上有一个简单的 PHP PDO 查询,它在 phpMyAdmin 控制台中返回一个结果,但无法使用下面的查询返回 PHP 中的任何行... 为什么 phpMyAdmin 和 PDO 查询会/可能会有不同的结果?
$statement = $this->db->connection->prepare($sql);
$statement->execute();
$arrResults = $statement->fetchAll(PDO::FETCH_ASSOC);
在我的 dsn 中有
;charset=utf8mb4
还有设置
$this->connection->exec("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;");
查询的 WHERE 部分如下...注意导致 PDO 问题的“ø”字符。如果我删除它,搜索工作正常。
WHERE (R.last_name LIKE '%Schø%' OR R.first_name LIKE '%Schø%')
或
WHERE (R.last_name LIKE _utf8mb4 '%Schø%' COLLATE utf8mb4_unicode_ci OR R.first_name LIKE _utf8mb4 '%Schø%' COLLATE utf8mb4_unicode_ci )
【问题讨论】:
标签: php mysql pdo utf8mb4 collate