2013-09-24 41 views
0

我有一個用戶可以將文件附加到記錄的腳本。文件分開存儲(不在數據庫中)。當用戶沒有附加文件並點擊「保存記錄」時,它工作正常。當用戶將文件它下面的步驟:上傳文件時數據庫更新失敗

  1. 文件上傳糾正
  2. 腳本上記錄使用Idiorm
  3. 腳本更新域「文件大小」 DB記錄的細節需要(我測試腳本,沒有這一步 - 同結果)
  4. 腳本試圖保存記錄,我得到這個:

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

如何解決?

更新:

我發現了兩兩件事:

  1. 腳本返回「一般錯誤:2006年MySQL服務器已消失」上傳的文件,只有當超過20 MB大,我試着使用Idiorm_record-> save()更新數據庫。
  2. 當上傳的文件大於20 Mb並且我不嘗試更新數據庫時,腳本不會返回「一般錯誤:2006 MySQL服務器已經消失」。
  3. 我可以上傳大於20 Mb的文件,並運行Idiorm_record-> save()與Idiorm :: raw_exec()生成的查詢並捕獲無錯誤。

這是否意味着與Idiorm相關的問題?

回答

0

問題是MySQL中的「等待超時」設置。但是爲什麼普通的sql工作正常並且通過Idiorm對象上的save方法更新導致Mysql消失的延遲仍然很有趣。