mysql php/mysql/phpmyadmin 中的排序规则不同

mysql collation different in php/mysql/phpmyadmin

我正在尝试使用整理命令在我的请求中添加口音管理,但我收到与无效整理相关的错误...

这是我的 sql 请求:

SELECT  p.ID,p.NOM,p1.ID,p1.NOM,p.ISNAV,p.LIEN
    FROM  p
    LEFT OUTER JOIN  p AS p1 ON p.FK = p1.ID
    WHERE  (      p.NOM   LIKE '%dev%' collate utf8mb4_unicode_ci
              OR  p.HTML  LIKE '%dev%' collate utf8mb4_unicode_ci
              OR  p1.NOM  LIKE '%dev%' collate utf8mb4_unicode_ci
              OR  p1.HTML LIKE '%dev%' collate utf8mb4_unicode_ci
           )
      and  p1.TPL<>'search'
    ORDER BY  p.FK t

这是我在php中的错误:

COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'latin1'

这是我在 mysql 命令行中的错误:

COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'utf8'

此请求在 phpmyadmin

中有效

当我在 mysql 控制台中将 utf8mb4_unicode_ci 更改为 utf8_unicode_ci 时,请求有效...但在我的 php 代码中无效。

我有点迷茫,有人可以解释一下为什么当我的专栏似乎有很好的校对时我会出现校对错误。

谢谢

您可以在 php 中使用 mysqli::set_charset

$mysqli->set_charset("utf8");