【问题标题】:How to convert string to a specific collation for a query如何将字符串转换为查询的特定排序规则
【发布时间】:2012-12-16 10:46:24
【问题描述】:

我正在使用 php 和 mysqli 创建一个简单的 Web 项目。
我也在使用准备好的语句。
在要绑定的变量处,输入是希腊语。

所以当通过我的 php 应用程序运行查询时,我得到了这个:

您的输入是“greek_characters_here”
查询错误:操作'='的排序规则(greek_general_ci,IMPLICIT)和(latin1_swedish_ci,COERCIBLE)的非法混合

我能做些什么来绕过这个问题?

注意:我无法更改数据库排序,因为我没有权限。

【问题讨论】:

    标签: php mysqli collation


    【解决方案1】:

    如果您无法更改表格并设置排序规则,您可以尝试使用 BINARY 运算符,它只是 COLLATE 的简写版本,您的语句如下所示:

    SELECT * FROM table WHERE BINARY a = BINARY b;
    

    【讨论】:

    • 它通过了查询,但没有出现任何结果。我用过 'mysqli_query($link, "SET NAMES 'utf8'");'它奏效了。我应该回答自己的问题并检查一下吗?
    • 发布查询(原始查询以及修改后的查询)可能会有所帮助。
    • 但我的查询完全没有改变。我唯一添加的是:mysqli_query($link, "SET NAMES 'utf8'");
    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多