首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询+特殊字符ä、ö、ü、ø等

SQL查询+特殊字符ä、ö、ü、ø等
EN

Stack Overflow用户
提问于 2012-05-12 19:48:56
回答 2查看 6.7K关注 0票数 0

在过去的几天里,我一直在思考一个问题,我需要一些关于如何解决这个问题的建议。

我有一个sql查询,如下所示

代码语言:javascript
复制
    mysql_real_escape_string($value);
    $sql_first = "SELECT `user_id` FROM `usermeta` WHERE `meta_value` = '".$value."'

如果$value不包含像ä ü ö ø这样的字符,它就可以正常工作

数据库的归类为utf8_general_ci

我用php的conv()函数尝试了各种组合,但就是不能正常工作。

我想我必须将$value转换成UTF8--这是不是朝着正确的方向发展?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-12 19:53:16

使用准备好的语句,数据库驱动程序将为您完成所有工作,并且您不会受到SQL注入攻击。

请参阅http://php.net/manual/fr/mysqli.prepare.php

票数 1
EN

Stack Overflow用户

发布于 2012-05-12 19:56:34

我建议您尝试使用utf8_unicode_ci排序规则

this链接:

主要区别是:

  1. utf8_unicode_ci支持所谓的扩展和连字,例如:德文字母§(U+00DF字母SHARP S)排序在"ss“附近,字母Œ(U+0152拉丁文大写连字OE)排序在"OE”附近。

utf8_general_ci不支持扩展/连字,它将所有这些字母作为单个字符进行排序,有时还会以错误的顺序排序。

对于所有脚本,

  1. utf8_unicode_ci通常更准确。例如,在西里尔语块上: utf8_unicode_ci适用于所有这些语言:俄语、保加利亚语、白俄罗斯语、马其顿语、塞尔维亚语和乌克兰语。而utf8_general_ci只适用于俄罗斯和保加利亚的西里尔语子集。在白俄罗斯语、马其顿语、塞尔维亚语和乌克兰语中使用的额外字母排序不佳。

utf8_unicode_ci的缺点是它比utf8_general_ci慢一点。

因此,当您需要更好的排序顺序时-使用utf8_unicode_ci,以及当您对性能非常感兴趣时-使用utf8_general_ci。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10563439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档