我已经将我的表的排序设置为utf8_unicode_ci,因此当人们进行搜索时,例如,在MONÃEE上,他们也会受到MONAE和MONÁE的攻击。工作正常。
我的脚本首先将数据输入到表中。
剧本基本如何运作......
它通过迭代php对象数组并将数据转储到mysql中的唯一列中来创建mysql中的记录。然后它需要从mysql获取刚刚创建的记录的id(和数据)(或者如果已经存在匹配记录的id),在php对象数组中找到该数据,并将mysql id粘贴到数组中匹配的对象,以便在脚本中进一步解析。
示例成功输入...
为简单起见,假设php数组只有一条记录:
DAVID
大卫进入mysql(之前没有),我们发现创建的mysql id是7。
我们通过php数组搜索DAVID,并插入7作为它的ID键。然后继续成功完成需要完成的任何解析。
示例问题输入...
再次,处理一条记录......
MONÁE
(请注意,具有不同重音的MONÃEE在mysql中是非常的)...
问题1:MONÁE没有进入唯一列,我认为因为整理将MONÁE和MONÃE视为相等。
问题2 当我的php然后在mysql中搜索MONÁE的id时,MONÜE的id和数据MONÃE将被返回,这再次归功于我认为的整理。
问题3 php现在在php数组中搜索MONÃE,但找不到它(因为MONÁE就在那里)
mysql id没有插入到数组中,其余的解析失败了。
我花了三天时间试图解决1和2.如何解决这个问题?
干杯!!
答案 0 :(得分:1)
您必须修改表格结构:
alter table tablename alter column colname collate utf8_bin.
这将解决您的问题,但请注意在应用之前这将对排序产生影响。