无论是c或者是php操作mysql数据库。都会涉及到编码格式的问题,尤其是创建数据库过程中
编码格式的选择很多,如果选择不合适,在程序、数据库、网页中就会出现中文乱码的情况。
下面是利用phpmyadmin创建数据库,演示创建过程中编码的选择,最后说明一下c和php操作过程的编码设置。
索引:phpMyAdmin 数据库 创建 乱码 汉字 递增 wampsever php apache MySQL
例子:
注意上图中MySQL默认字符集,将下图中MySQL连接校对设为与上图中字符集一致,都为utf8
如上图,新建一个数据库,将整理设为utf8_general_ci。
上图,在数据库中新建一个表。 表结构按下图设定。
注意上图中的设定。 设定完成后保存,系统提示数据库表创建完成,如下图。
下图中的ID字段的“额外”一栏出现auto_increment,表示该字段可自动增量填充,无需人工输入数据。
插入几行记录。输入时ID字段不需要输入,只需输入NAME字段内容即可。
点击浏览,见下图,没有乱码。
数据库创建完成。
知识点:出现的几个概念。
1、MySQL(数据库)字符集。服务器中设定。
2、MySQL连接校对。phpMyAdmin中设定(下同),如与1不一致,将导致数据损坏,显示乱码。并且,决定了数据库名称所使用的字符集。选utf8,可用汉字作为数据库名。
3、新建数据库的整理(字符集)。决定了表名称的字符集。选utf8,可用汉字作为表名。
4、新建表的整理(字符集)。决定了字段所用的字符集,选utf8可用汉字作为字段名。
5、文本(字符串)型字段的整理(字符集)。决定了该字段内容的字符集。选uft8,可在数据项中输入汉字。
6、在PHP中,添加代码mysql_query("set names 'gbk'")或者mysql_query("set names 'gb2312'"),可保证网页显示不出现乱码。(代码大小写都行)
强烈建议将上述所有字符集全部设定为:utf8_general_ci,以保证汉字的正常输入、保存和显示。
总结:要做到在phpMyAdmin中不出现乱码,至少应保证MySQL连接校对与MySQL数据库字符集要一致,强烈推荐使用utf8。
使用c连接mysql后,使用mysql_set_character_set(&conn,"utf8"); //设置操作数据库过程的编码格式
使用php连接mysql后,使用mysql_query("SET NAMES 'utf8' "); //设置操作数据库的编码格式