PHP:MySQL服务器已经消失

时间:2012-07-20 16:24:41

标签: php mysql

我知道这个问题已被多次询问,但我已经尝试过所有事情。

我有一个PHP脚本,它遍历数千个图像,必要时执行调整大小,然后插入数据库。

我收到此错误消息:

  

警告:mysql_query()[function.mysql-query]:MySQL服务器已经消失了   在105行的C:\ Utilities \ server \ htdocs \ newGen \ index.php

     

警告:mysql_query()[function.mysql-query]:读取结果出错   在线上设置C:\ Utilities \ server \ htdocs \ newGen \ index.php中的标题   105

我使用Xampplite,因此缺少其他人用来解决问题的部分php.ini,因为他们没有使用精简版。

我确定问题不是超时。虽然脚本将运行几分钟,但它会跳过已经处理过的图像,因此我会在大约10秒内快速收到错误消息。也许这与max table size有关?我无法在我的php.ini中找到控制它的任何内容。

非常感谢所有帮助,我已经在这几个小时了。

编辑:

以下是105分的代码,它是查询:

        // Add tNail and image to db
        mysql_query("INSERT INTO gallery values('','$hash','$thumbBlob','$imageBlob','$type','','0','0.0')");
    //  $q->execute();
        print "Successfully processed $fileName<br>";

正如你在评论中看到的那样,我尝试了PDO并得到了同样的错误,愚蠢的是我想回到mysql_命令会有所帮助。

如果有任何帮助,脚本每次都会以相同的图像投诉,但每张图片只有几十千字节,最多只有几百个。

3 个答案:

答案 0 :(得分:25)

检查max_allowed_packet MySQL配置文件中的“my.cnf”值。

答案 1 :(得分:1)

这是因为PHP脚本花了太长时间来处理正在处理的任何内容,并且与服务器的连接超时。你有几个解决方案:

  • 检查以确保连接仍然正常,并在需要时重新连接(mysql_connect具有为您执行此操作的内置功能)。
  • 使用mysql_pconnect(但请记住最后关闭连接,因为它不会为您关闭)
  • 改善脚本的运行时间以避免超时。

答案 2 :(得分:1)

您可以使用mysql_ping()查看连接是否仍然连接,如果没有,您可以尝试重新连接,或者发出错误消息,告诉您在连接丢失之前脚本已经走了多远。