以前是写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又是什么区别等..我不会写文章的,写了这么多很不容易的

解决方案 »

  1.   

    楼主遇到的是编码的问题,这个……不知道楼主的MySQL是什么版本的,所以不是很好判定。我使用的MySQL是默认的数据,一般没有什么问题,但是在MySQL的命令行模式中,大部分对中文的支持比较弱,所以……楼上说的对,这个的确是这样的东西,不过,我没有使用过innoDB的库,我使用的都是MyISAM的库……
      

  2.   

    还有为什么用SQLyogEnterprise看字段内容的时候是乱码的,而且PHP程序输入的时候却是正确的?
      

  3.   

    曾经想学php,最后因为乱码问题而投入.net的怀抱了……
      

  4.   

    PHP连MYSQL的编码有很多个方面,一般用的时候都统一用一个编码
    看你的样子在数据库存储用了LATIN,这个是MYSQL默认安装的编码,因为开发MYSQL的人用的就这个语言,现在我们比较喜欢用UTF8,但以前很多程序都是用GBK的,你的SQLyogEnterprise里用的连接编码、结果集可能都是GBK或都UTF的,所以会乱码,一般如果同样环境一段程序插入与取出,显示都不会有问题
      

  5.   

    PHP太烦了 ,但是还是没有办法 要学
      

  6.   

    管理mysql用phpmyadmin编码看你的要求..如果单纯的开发中文的东西不包括英文日文..
    数据库用gb2312,表用gb2312,字段用gb2312就可以了,页面里面用gb2312
    我曾经一一开始也是对编码不太明白,但是现在彻底明白了
    php比较灵活,又开源...太好了
      

  7.   

    1、你并没有遇到“乱码”问题!从“立即用刚学的把这条记录输出到浏览器,怎么是对的,一个中文字,谁都认识的中文字”就可以看到。至于为什么在SQLyogEnterprise中看到的是SQLyogEnterprise,那么就要问SQLyogEnterprise了,与php一点关系都没有2、MYISAM 是mysql 4推荐的高效存储格式,缺点是不支持事务。而一般应用中对“事务”的需求并不是很高。随着支持“存储过程”的mysql 5 的出现,InnoDB 格式使用的多了起来。
    不过请注意:MYISAM 是可以拷贝的,而 InnoDB 不行。在需要移动数据库时请注意这个问题,切切
      

  8.   

    是来学习的,也刚学PHP,觉得这些问题早出现早好,让我们把所有的问题都搞清楚才可以,要不默默忽忽的反而是自欺欺人,