php - sql查询中的特殊字符

标签 php mysql

我正在从 xml 文件中读取数据。我的 xml 文件有像 Istanbul 尔这样的城市名称。我使用选择查询在我的城市表中检查 Istanbul 尔。但是当我在 php 中回显我的 sql 查询时,它以这种格式显示查询

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

Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation 'find_in_set'

最佳答案

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

看看this documentation了解这件事。

更改表的字符集:

ALTER TABLE dc_city CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

关于php - sql查询中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20283870/

相关文章:

php - 登录网站后无法转到另一个页面&填写注册表后也不会让我登录

php - 为 foreach() 搜索结果提供的参数无效

php - php中ftp文件上传问题

MySql:从按日期分组的两个表中获取数据

php - 使用 PHP 即时生成页面

php - Laravel验证数字多维数组

php - 将 MySQL 查询的所有结果行放入数组中

php - 如何从数据库中获取两个日期之间的值?

PHP mysqli_real_escape_string 返回空字符串

SQL多对多查询问题