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

PHP&;MySql转储文件中排序规则的非法混合,php,mysql,collation,Php,Mysql,Collation,我编写了一个PHP脚本来获取一些我想输入数据库的数据。这包括需要输入的用户名,有些用户选择的用户名上下颠倒,即“uıɯpɐ” 当我在WHERE子句中使用该用户名时,我得到一个排序错误,php有没有办法在进入数据库之前对其进行清理以避免这种情况 #1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 脚本的设置方式我没有太多选

我编写了一个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
。但请注意,他使用了一个“无点的我”(一个土耳其语字符)来创建倒置的
i

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


更多UTF-8提示:

您不能更改数据库的文本编码吗?然后它就可以处理它了。我想的另一个选择是不存储用户名,只存储它们的哈希编码或ASCII码,每当它们登录时,使用cookie存储并显示它们的用户名。有成千上万个条目大多数都很好,有没有办法允许这些类型的字符,使用SQL查询的默认字符集?@AlphaOmega是否可以插入到db中,但不能在where子句中使用?是的,它似乎只在插入后的后续where子句中使用时遇到错误。