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");
我正在尝试使用整理命令在我的请求中添加口音管理,但我收到与无效整理相关的错误...
这是我的 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");