9

我知道这个问题已经被问过很多次,但我已经尝试了一切。

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

我收到此错误消息:

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

警告:mysql_query() [function.mysql-query]:在第 105 行的 C:\Utilities\server\htdocs\newGen\index.php 中读取结果集的标头时出错

我正在使用 Xampplite,因此 php.ini 的某些部分丢失了其他人用来解决问题的部分,因为他们没有使用 lite 版本。

我确定问题不在于超时。虽然脚本将运行几分钟,但它会跳过已经处理过的图像,因此我很快会在大约 10 秒内收到错误消息。也许这与最大表大小有关?我在我的 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_ 命令会有所帮助。

如果它有任何帮助,脚本每次都会抱怨同一个图像,但每个图像只有几十千字节,最多几百。

4

3 回答 3

30

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

于 2012-07-20T16:32:28.787 回答
1

发生这种情况是因为 PHP 脚本处理它所处理的任何内容的时间过长,并且与服务器的连接超时。你有几个解决方案:

  • 检查以确保连接仍然正常,并在需要时重新连接(mysql_connect具有内置功能可以为您执行此操作)
  • 使用mysql_pconnect(但请记住在最后关闭连接,因为它不会为您关闭)
  • 提高脚本的运行时间以避免超时。
于 2012-07-20T16:28:04.280 回答
1

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

于 2012-07-20T16:37:24.123 回答