pdo无法使用collate utf8mb4_unicode_ci返回mysql搜索

gfttwv5a  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(238)

我在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 )

在phpmyadmin中返回的结果:

可搜索列:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题