我有一个脚本,用户可以在其中将文件附加到记录中。文件单独存储(不在数据库中)。当用户不附加文件并单击“保存记录”时,它可以正常工作。当用户附加文件时,它会执行以下步骤:
- 文件上传正确
- 脚本使用 Idiorm 从 DB 记录详细信息中获取
- 脚本更新记录中的“filesize”字段(我在没有这一步的情况下测试了脚本 - 结果相同)
脚本尝试保存记录,我得到了这个:
PDOException Code: HY000 Message: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away File: /home/../includes/idiorm.php Line: 1675
如何解决?
更新:
我发现了两件事:
- 仅当上传的文件大于 20 Mb 并且我尝试使用 Idiorm_record->save() 更新数据库时,脚本才会返回“一般错误:2006 MySQL 服务器已消失”。
- 当上传的文件大于 20 Mb 并且我不尝试更新数据库时,脚本不会返回“一般错误:2006 MySQL 服务器已消失”。
- 我可以上传大于 20 Mb 的文件并使用 Idiorm::raw_exec() 运行由 Idiorm_record->save() 生成的查询并且没有发现错误。
这是否意味着与 Idiorm 有关的问题?