【发布时间】:2015-07-01 23:24:29
【问题描述】:
我编写了一个 PHP 脚本来收集一些我想输入数据库的数据。这包括需要输入的用户名,一些用户选择了颠倒的用户名,即'uıɯpɐ'
当我在 WHERE 子句中使用该用户名时出现排序错误,php 有没有办法在进入数据库之前对其进行清理以避免这种情况?
#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
脚本的设置方式我别无选择,只能在 where 子句中使用用户名。
【问题讨论】:
-
不能更改数据库的文本编码吗?然后它就可以处理它了。
-
我想到的另一个选择是不存储用户名,只存储他们的哈希编码或 ASCII 码,并且每当他们登录时,使用 cookie 来存储并显示他们的用户名。跨度>
-
有数千个条目大多数都很好,有没有办法允许这些类型的字符,使用 SQL 查询的默认字符集?
-
@AlphaOmega 你能插入数据库但不能在 where 子句中使用吗?
-
是的,它似乎只遇到错误,当它在插入后的后续 where 子句中使用时。