是不是使用PHP的版本不一样,Mysql的版本也不一样。
同样的程序,在不同的PHP环境里(如上面所说的)是不是会出现很多错误?大家有遇到过没?
我现在遇到的问题是,我使用不同的环境,然后同样同样的程序运行就出现很大的问题。
而大多数问题都是因为数据库的sql语句不行。但是在另外的一个环境里,很多sql语句就可以执行。
有没有遇到这样问题的?大家分享下经验。问题,确实够头疼的,头疼了几天了。

解决方案 »

  1.   

    从提示的错误中提取几个关键字,在网上搜一下。大多能找到答案(其它语言,linux下安装软件,这招都不错)。
    你的问题可能是自己搭建的环境,有些参数设置不正确。
    遇到问题是好事。以后你工作了,会遇到各种各样的问题
    不仅仅有php和mysql自身的问题。还有浏览器,flash,web服务器,squid.... ,linux系统自己设置不正确也会出问题。
    排查问题是很重要的。尤其维护一个大一点的网站,这种能力就不能少了。
      

  2.   

    如果是php 很可能是新版本的提示功能,仅仅是提示而已不是错误。
    至于mysql 没碰过,除非版本很旧要不然不会出现版本升级后出现大量错误的问题,除非你的数据库类型没有修改一致之类的。
    如果是跨平台 比如从win->linux 那是有可能的,这源于你之前写的代码或者 sql没有按照规范来书写。
      

  3.   


    首先谢谢你的回答,现在的主要问题是,一套已经完成的PHP程序,因为搭建环境不同,导致很多功能无法使用。我对版本比较了一下,同时,我在导入sql文件到数据库的时候,也遇到了一些问题。在一个版本的mysql导入时可以导入,在较新的版本导入时,就需要将SQL文件转换成UTF8+BOM才可以导入成功不出现乱码,而且还需要对SQL文件中的一些SQL语句进行修改。
    但是,现在的问题是,我在新的电脑上架设,很多像UPDATA,INSERT的操作都会出现问题,插入的时候错误是默认值没设置,但是,我在较新版本的mysql就不提示错误,可以正常执行。但是结果会有问题。现在,我不知道到底是哪里的问题,问题的根本处在哪里?这是我在这几天的工作中遇到的问题。很是头疼。
      

  4.   


    恩,mysql都是5的版本,但是也是不同。代码不是我写的。所以,很多我都是摸黑。探索。发生的一些问题也是在之前的工作中没有遇到过的。所以想问一下大家有么有遇到类似的问题。
      

  5.   

    mysql版本不同,引起有的sql能执行,有的不能执行。这个情况是有的,我就遇到过。
    两个表相连,但两个表中出现了相同的字段,在select中又没指出具体引用那个字段。
    最后导致一个能执行,一个出错。当时测试给我反映的情况是:
    有个页面一直刷。一会能正常显示,一个是个空页。因为我们公司用的主从数据库和lvs。所以出现这个问题。你的问题。把要执行的sql打印出来,分别在不同的版本下执行一下。看是否出错。一个出错,一个没出错。很显然是版本问题。相应改下sql就行了。 ”很多像UPDATA,INSERT的操作都会出现问题,插入的时候错误是默认值没设置“,修改一个表结构,把一些字段设上默认值是没什么错的。
      

  6.   

    php的版本不一样。有些扩展支持的功能也就不一样的。
      

  7.   

    php   估计跟php.ini  配置文件有关。  mysql 楼主是不是把以前备份好的sql 文件导入? 如果还有原数据库的话, 可以考虑一下用 帝国备份王 备份再导入,它是可以夸版本。
      

  8.   

    恩,对的。我遇到的默认值错误的问题,但是,要改的文件太多。每个表和SQL语句都要改?而且,insert插入的时候默认值设置过滤,在update的时候也出错。
      

  9.   

    这个是需要一些基础知识的。多学多看。不能导入,一般和mysql的sql模式有关。第二个编码有关。第三个和你导入的工具有关。 php版本,一般用php5.2。5.3以后会有很多问题的。不要轻易升级在linux上。mysql,4.1之前不区分编码。比如:set names 'utf8',就是告诉要传输的是utf-8的文件。 但你传了一个gbk的,可能出错。许多win下的文件或导出的文件,在不同系统中,编码可能变,所以要确保编码一致。
      

  10.   


    编码我已经设置了,使用的是mysql_query("set names utf8");
    编码问题我已经解决了。主要的是文件在linux打开是正常的,在windows下打开就乱码,使用editplus转换后成UTF8+BOM,在打开在现实正确。然后倒入的时候,有一条Create table的表有问题,提示字段长度太长,所以我给改小了,但是程序功能有的地方有问题,但是插入和更新是没问题。
    然后我在windows下换了一个环境,用的mysql版本,倒入的时候没有出现错误,导入后也没乱码,但是在执行的时候程序插入,update操作都无效。导入的工具是mysql,使用的source语句导入的。