PHP&;MySql转储文件中的排序规则非法混合


PHP & Illegal mix of collations in MySql dump file

我编写了一个PHP脚本来获取一些要输入数据库的数据。这包括需要输入的用户用户名,一些用户选择了带有倒置文本的用户名,即"uıɯpɐ">

当我在WHERE子句中使用该用户名时,我遇到了一个排序规则错误,php有没有办法在进入数据库之前对其进行清理以避免这种情况?

#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 

脚本的设置方式我别无选择,只能在where子句中使用用户名。

uıɯpɐ来自于有人扰乱你的头脑。它是从各种UTF-8字符集中搜寻到的字符,使看起来像是一个倒置的admin。但请注意,他使用了一个"dotless i"(土耳其字符(来创建倒置的i

您应该将任何需要具有任意字符的列从latin1更改为utf8mb4。如果您仍然有排序规则错误,我们可以讨论其他需要更改的内容。如果没有看到导致错误的语句SHOW CREATE TABLE和连接参数,我就无法更具体地说明。

更多UTF-8提示:UTF-8字符有问题;我看到的不是我存储的