将符号插入MySQL

将符号插入MySQL,mysql,phpmyadmin,Mysql,Phpmyadmin,这是我问题的延伸 在一个为我链接的问题收集更多信息的简单测试中,我试图通过phpMyAdmin接口将一个符号和字符插入我的数据库 INSERT INTO `my_db`.`some_table` (`id`, `version`, `value`) VALUES (NULL, '0', '&'); 。。。但是插入的是HTML等价物& 我的数据库排序规则是utf8\u-bin,我插入的表是utf8\u-general\u-ci,我尝试插入的与的字段类型是varchar 我必须做什么

这是我问题的延伸

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

INSERT INTO `my_db`.`some_table` (`id`, `version`, `value`) VALUES (NULL, '0', '&');
。。。但是插入的是HTML等价物
&

我的数据库排序规则是
utf8\u-bin
,我插入的表是
utf8\u-general\u-ci
,我尝试插入的与的字段类型是
varchar

我必须做什么才能将原始的符号和字符
&
插入我的MySQL数据库

更新:


我不知道phpMyAdmin的问题是什么,但我想我发现了我的应用程序的问题。Hibernate似乎没有为连接使用正确的字符集。我已经指定了一种自定义MySQL方言,因此我只需重写如下所示的
getTableTypeString
方法,我的应用程序现在将值正确插入MySQL:

class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {   
    @Override
    public String getTableTypeString() {
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8"
    }
}
您可以尝试:

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

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

class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {   
    @Override
    public String getTableTypeString() {
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8"
    }
}
类custommysql5innodbdialent扩展了mysql5innodbdialent{
@凌驾 公共字符串getTableTypeString(){ return“ENGINE=InnoDB DEFAULT CHARSET=utf8” }
}

可能的重复情况可能是phpMyAdmin的web界面给您带来了麻烦。您是否尝试过直接在MySQL内部或通过某种程序语言运行此查询?我只尝试过通过phpMyAdmin和Grails应用程序创建的连接运行此查询。两者产生相同的结果。我将尝试使用MySQL Workbench。@FreshPrinceOfSO您链接到的问题是,存储符号的最佳方式是什么。显然,这个问题的OP知道如何以
&
&。我的问题是,当我试图存储原始的符号和字符
&
时,为什么要存储HTML格式。我刚刚尝试了这个,我正在运行phpMyAdmin 4.0.1-rc1。它工作正常,不转换为&;我还在MySQL命令行客户端中进行了测试,它的工作原理也是一样的。