将&符号插入MySQL

时间:2013-09-30 15:43:43

标签: mysql phpmyadmin

这是我的问题here的扩展。

在一个简单的测试中收集我链接到的问题的更多信息我试图通过phpMyAdmin接口将一个&符号插入我的数据库......

INSERT INTO `my_db`.`some_table` (`id`, `version`, `value`) VALUES (NULL, '0', '&');

...但插入的内容是HTML等效&

我的数据库排序规则是utf8_bin,我插入的表格是utf8_general_ci,而我正在尝试插入&符号的字段是varchar类型。

如何将原始的&符号&插入MySQL数据库?

更新

我不知道phpMyAdmin的问题是什么,但我认为我发现了我的应用程序的问题。似乎Hibernate没有使用正确的字符集进行连接。我已经指定了自定义的MySQL方言,所以我只是覆盖getTableTypeString方法,如下所示,我的应用程序现在正确地将值插入MySQL:

class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {   
    @Override
    public String getTableTypeString() {
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8"
    }
}

2 个答案:

答案 0 :(得分:0)

您可以尝试:

INSERT INTO `my_db`.`some_table` (`id`, `version`, `value`) VALUES (NULL, '0', _utf8'&');

答案 1 :(得分:0)

我不知道phpMyAdmin的问题是什么,但我认为我发现了我的应用程序的问题。似乎Hibernate没有使用正确的字符集进行连接。我已经指定了一个自定义MySQL方言,所以我只是覆盖了getTableTypeString方法,如下所示,我的应用程序现在正确地将值插入MySQL:

class CustomMySQL5InnoDBDialect扩展了MySQL5InnoDBDialect {
    @覆盖     public String getTableTypeString(){         返回“ENGINE = InnoDB DEFAULT CHARSET = utf8”     } }