以前是写ASP的,刚看了一天的技术文档,于是打算下载一个程序看看,所以就下了一个最简单的添删改之类的东西在对视..
建表语句是
CREATE TABLE `users` (
....
PRIMARY KEY (`id`)
);
OK,成功!在PHP中执行一添加操作,NND,为什么不行?就是不行,为什么?还是不行呢?insert语句没错呀,然后在程序里将$sql语句打印调试出来,之后将它COPY到SQLyogEnterprise(朋友介绍的客户端工具,类似MSSQL企业管理器的东西),OK,插入成功,插得舒服!这就纳闷了,为什么在程序里执行不了?搞了半天,一个个字段调试过去,终于找到问题根本:性别字段(radio,没得输入,只能选)是中文(男\女,当然我在添加的时候是乱输的,其它字段没输中文,所以没错,要是输中文添加的话肯定也错)...噢噢,终于醒过来了,那时候就点了根烟,然后把表删除了,重新建在最后加了这样句话:ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;当然我不知道它具体是啥意思,OK!再添加,成功!舒服,以为问题解决了,又可以想美女去了.但我一看数据表里,那个被我输入的中文字段是:??(乱码),立即用刚学的把这条记录输出到浏览器,怎么是对的,一个中文字,谁都认识的中文字.但数据库里还是??,眨了两眼...说了这么多废话,其它我想向大伙儿求助一下,这个PHP字符编码,MYSQL字符编码的这些问题,到底应该怎么样的,如果有教程的话更好.希望大家能够帮帮我这个勤奋学习的人,MYISAM跟InnoDB又是什么区别等..我不会写文章的,写了这么多很不容易的
建表语句是
CREATE TABLE `users` (
....
PRIMARY KEY (`id`)
);
OK,成功!在PHP中执行一添加操作,NND,为什么不行?就是不行,为什么?还是不行呢?insert语句没错呀,然后在程序里将$sql语句打印调试出来,之后将它COPY到SQLyogEnterprise(朋友介绍的客户端工具,类似MSSQL企业管理器的东西),OK,插入成功,插得舒服!这就纳闷了,为什么在程序里执行不了?搞了半天,一个个字段调试过去,终于找到问题根本:性别字段(radio,没得输入,只能选)是中文(男\女,当然我在添加的时候是乱输的,其它字段没输中文,所以没错,要是输中文添加的话肯定也错)...噢噢,终于醒过来了,那时候就点了根烟,然后把表删除了,重新建在最后加了这样句话:ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;当然我不知道它具体是啥意思,OK!再添加,成功!舒服,以为问题解决了,又可以想美女去了.但我一看数据表里,那个被我输入的中文字段是:??(乱码),立即用刚学的把这条记录输出到浏览器,怎么是对的,一个中文字,谁都认识的中文字.但数据库里还是??,眨了两眼...说了这么多废话,其它我想向大伙儿求助一下,这个PHP字符编码,MYSQL字符编码的这些问题,到底应该怎么样的,如果有教程的话更好.希望大家能够帮帮我这个勤奋学习的人,MYISAM跟InnoDB又是什么区别等..我不会写文章的,写了这么多很不容易的
看你的样子在数据库存储用了LATIN,这个是MYSQL默认安装的编码,因为开发MYSQL的人用的就这个语言,现在我们比较喜欢用UTF8,但以前很多程序都是用GBK的,你的SQLyogEnterprise里用的连接编码、结果集可能都是GBK或都UTF的,所以会乱码,一般如果同样环境一段程序插入与取出,显示都不会有问题
数据库用gb2312,表用gb2312,字段用gb2312就可以了,页面里面用gb2312
我曾经一一开始也是对编码不太明白,但是现在彻底明白了
php比较灵活,又开源...太好了
不过请注意:MYISAM 是可以拷贝的,而 InnoDB 不行。在需要移动数据库时请注意这个问题,切切