php/ Mysql /phpmyadmin中的Mysql排序不同


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
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控制台中通过utf8_unicode_ci更改utf8mb4_unicode_ci时,请求工作…但不是在我的PHP代码。

我有点迷路了,谁能解释一下为什么当我的专栏似乎有很好的整理时,我得到了整理错误。

谢谢

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

$mysqli->set_charset("utf8");