Сбой обновления базы данных при загрузке файла
У меня есть скрипт, где пользователь может прикрепить файл к записи. Файл хранится отдельно (не в базе данных). Когда пользователь не прикрепляет файл и не нажимает кнопку "Сохранить запись", он работает нормально. Когда пользователь прикрепляет файл, он делает следующие шаги:
- Загрузка файлов правильная
- Скрипт берет из базы данных детали записи с использованием Idiorm
- Скрипт обновляет поле "размер файла" на записи (я тестировал скрипт без этого шага - тот же результат)
Скрипт пытается сохранить запись, и я получаю это:
PDOException Code: HY000 Message: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away File: /home/../includes/idiorm.php Line: 1675
Как это можно решить?
Обновить:
Я обнаружил 2 вещи:
- Сценарий возвращает "Общая ошибка: сервер MySQL 2006 пропал" только в том случае, если размер загруженного файла превышает 20 МБ, и я пытаюсь обновить базу данных с помощью Idiorm_record->save().
- сценарий не возвращает "Общая ошибка: сервер MySQL 2006 исчез", когда загруженный файл больше 20 Мб, и я не пытаюсь обновить базу данных.
- Я могу загрузить файл размером более 20 Мб и выполнить запрос, сгенерированный Idiorm_record-> save () с помощью Idiorm::raw_exec(), и не уловить ошибки.
Значит ли это, что проблема связана с Идиорм?
1 ответ
Проблема заключалась в настройке "ожидания ожидания" в MySQL. Но все же интересно, почему обычный sql работает нормально, а обновление через метод save объекта Idiorm приводит к задержке Mysql.