Сбой обновления базы данных при загрузке файла

У меня есть скрипт, где пользователь может прикрепить файл к записи. Файл хранится отдельно (не в базе данных). Когда пользователь не прикрепляет файл и не нажимает кнопку "Сохранить запись", он работает нормально. Когда пользователь прикрепляет файл, он делает следующие шаги:

  1. Загрузка файлов правильная
  2. Скрипт берет из базы данных детали записи с использованием Idiorm
  3. Скрипт обновляет поле "размер файла" на записи (я тестировал скрипт без этого шага - тот же результат)
  4. Скрипт пытается сохранить запись, и я получаю это:

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

Как это можно решить?

Обновить:

Я обнаружил 2 вещи:

  1. Сценарий возвращает "Общая ошибка: сервер MySQL 2006 пропал" только в том случае, если размер загруженного файла превышает 20 МБ, и я пытаюсь обновить базу данных с помощью Idiorm_record->save().
  2. сценарий не возвращает "Общая ошибка: сервер MySQL 2006 исчез", когда загруженный файл больше 20 Мб, и я не пытаюсь обновить базу данных.
  3. Я могу загрузить файл размером более 20 Мб и выполнить запрос, сгенерированный Idiorm_record-> save () с помощью Idiorm::raw_exec(), и не уловить ошибки.

Значит ли это, что проблема связана с Идиорм?

1 ответ

Проблема заключалась в настройке "ожидания ожидания" в MySQL. Но все же интересно, почему обычный sql работает нормально, а обновление через метод save объекта Idiorm приводит к задержке Mysql.

Другие вопросы по тегам