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

时间:2013-09-24 16:25:32

标签: php file upload idiorm

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

  1. 文件上传正确
  2. 脚本使用Idiorm
  3. 从DB记录详细信息中获取
  4. 脚本更新记录中的“filesize”字段(我测试的脚本没有此步骤 - 结果相同)
  5. 脚本尝试保存记录,我明白了:

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

    更新

    我发现了两件事:

    1. 脚本仅在上传文件大于20 Mb时返回“常规错误:2006 MySQL服务器已消失”,我尝试使用Idiorm_record-> save()更新数据库。
    2. 当上传的文件大于20 Mb时,
    3. 脚本没有返回“常规错误:2006 MySQL服务器已经消失”,我不会尝试更新数据库。
    4. 我可以上传大于20 Mb的文件并使用Idiorm :: raw_exec()运行由Idiorm_record-> save()生成的查询,并且不会收到任何错误。
    5. 这是否意味着与Idiorm有关的问题?

1 个答案:

答案 0 :(得分:0)

问题是MySQL中的“等待超时”设置。但仍有趣的是为什么普通的sql工作正常并且通过Idiorm对象上的save方法更新会导致Mysql消失的延迟。