本地测试:IIS(WIN XP), PHP-4.38, MySQL-4.026, ZendOptimizer-2.5.7.MySQL数据库中存贮文件的字段为LONGBLOB类型代码: $filedata = addslashes(fread(fopen($filepath, "rb"), $filesize));问题是:
将变量$filedata 存贮到数据库,存贮1M以下的文件没有问题,存贮1M以上(没有超过2M)的文件时出现数据库错误,错误的全部代码无法看到(IE死了),显示如下:
Database Error:
Invalid SQL: .....乱码.......奇怪的是:
PHP默认设置可以上传2M的文件,但现在上传1M以上2M以下的文件出现错误(1M以下正常),但将文件存贮到某一文件夹下(即不存贮到数据库)也不会出现错误。估计是MYSQL数据的问题,不会是PHP代码的问题,但问题出在哪儿?研究不出来,请高手指点迷津。

解决方案 »

  1.   

    PHP配置文件设置上传文件大小太小造成。(或者是mysql配置文件)
    就是那个.INC文件。
    这个和FTP设置没有关系。
    我也是菜鸟期待高人出现。
      

  2.   

    $filedata = mysql_escape_string(fread(fopen($filepath, "rb"), $filesize));
    看行不行
      

  3.   

    回复:faisun(暖阳)谢谢帮助,但这句也不和。错误一样,提示还是数据库错误,插入数据时。
      

  4.   

    为什么要在MySQL里存储文件呢……
      

  5.   

    IE死了,无法保存错误内容。但可以看得出来:是数据库错误,insert 数据库表过程,然后是乱码,估计是要保存的文件二进制内容。
      

  6.   

    mysql默认包的长度是1M,好像是my.cnf里配置max_allowed_packet_size
      

  7.   

    在my.ini里加了max_allowed_packet_size=10M 这一行也不行。