上载文件时数据库更新失败


Database update fails when file was uploaded

我有一个脚本,用户可以在其中将文件附加到记录。文件单独存储(不在数据库中(。当用户不附加文件并单击"保存记录"时,它可以正常工作。当用户附加文件时,它会执行后续步骤:

  1. 文件上传正确
  2. 脚本使用 Idiorm 从数据库记录详细信息中获取
  3. 脚本
  4. 更新记录上的字段"文件大小"(我在没有此步骤的情况下测试了脚本 - 相同的结果(
  5. 脚本尝试保存记录,我得到这个:

    PDOException
    Code: HY000
    Message: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
    File: /home/../includes/idiorm.php
    Line: 1675
    

如何解决?

更新:

我发现了两件事:

  1. 脚本仅在上传的文件大于 20 Mb 并且我尝试使用 Idiorm_record->save(( 更新数据库时返回"一般错误:2006 MySQL 服务器已消失"。
  2. 当上传的文件大于 20 Mb 并且我不尝试更新数据库时,脚本不会返回"一般错误:2006 MySQL 服务器已消失"。
  3. 我可以上传大于 20 Mb 的文件并使用 Idiorm::raw_exec(( 运行 Idiorm_record->save(( 生成的查询,并且没有捕获任何错误。

这是否意味着与成语有关的问题?

问题是MySQL中的"等待超时"设置。但是仍然很有趣,为什么普通sql工作正常并通过Idiorm对象上的保存方法进行更新会导致Mysql消失的延迟。