在过去的几天里,我正在解决一个问题,需要一些如何解决问题的技巧。
我有一个看起来像这样的SQL查询
mysql_real_escape_string($value);
$sql_first = "SELECT `user_id` FROM `usermeta` WHERE `meta_value` = '".$value."'
如果$ value不包含ä ü ö ø
之类的字符,它可以正常工作
数据库的排序规则为utf8_general_ci
我尝试使用php conv()
函数进行各种组合,但无法使其正常工作。
我想我必须将$value
转换为UTF-8 - 这是朝着正确的方向发展的吗?
答案 0 :(得分:1)
使用预准备语句,数据库驱动程序将为您完成所有操作,并且您不会受到SQL注入攻击作为奖励。
答案 1 :(得分:0)
我想说试试utf8_unicode_ci
整理
来自this链接:
主要区别是:
utf8_general_ci不支持扩展/连字,它排序 所有这些字母都是单个字符,有时候是错误的顺序。
utf8_unicode_ci的缺点是它有一点点 比utf8_general_ci慢。
所以当你需要更好的排序顺序时 - 使用utf8_unicode_ci, 当你对表演完全感兴趣时 - 使用utf8_general_ci。