sql查询中的特殊字符

时间:2013-11-29 10:44:03

标签: php mysql

我正在从xml文件中读取数据。我的xml文件的城市名称就像İstanbul。我使用选择查询检查我的城市表中的İstanbul。但是当我在php中回显我的sql查询时,它会在这个格式中显示查询

SELECT city_id FROM dc_city 
WHERE (name = 'Ä°stanbul - Avrupa' OR FIND_IN_SET('Ä°stanbul - Avrupa',like_names)) 
AND cultureid = 13
  

操作'find_in_set'的非法混合排序(utf8_general_ci,COERCIBLE)和(latin1_swedish_ci,IMPLICIT)

2 个答案:

答案 0 :(得分:0)

您应该更改表格的字符集/整理。当您尝试使用UNICODE(UTF8)字符串过滤它时,您有一个以ASCII格式存储其数据的表。

请查看this documentation以了解此事。

要更改表的字符集:

ALTER TABLE dc_city CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

答案 1 :(得分:0)

SET collation_connection = 'utf8_general_ci'

然后是您的数据库

ALTER DATABASE db CHARACTER SET utf8 COLLATE utf8_general_ci

ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

MySQL有时没有明智的理由偷偷溜进瑞典语。

Illegal mix of collations MySQL Error

相关问题