Я получаю ошибки только на реальном хостинге (hostinger). Он отлично работает на моем локальном (XAMPP) сервере. Кроме того, на сервере живого хостинга ошибка появляется, только если я выполняю несколько проверок, которые вызывают соответствующие операторы PDO.
Вот мой код:
if(check if user exists){
if(submitted status different from status in DB){
call PDO function to update status and enter into log file
}
if(submitted role different from role in DB){
call PDO function to update role and enter into log file
}
if(submitted class different from class in DB){
call PDO function to update class and enter into log file
}
}else{
redirect()
}
Три «оператора if» только проверяют, отличается ли представленное значение от значения, присутствующего в БД, поэтому я могу обновить только если представленные значенияотличается от соответствующего в БД. Кроме того, статус, роль и класс не зависят друг от друга.
Функция PDO:
Each PDO function has a query like
"INSERT INTO log where....;
UPDATE users where...."
Я получаю сообщение об ошибке, если выполняются два или более условия. Если выполняется только одно условие, например, требуется только обновление статуса, то я не получаю никакой ошибки.
Кроме того, даже если два или более условий проходят (например, статус и роль должны быть обновлены), иЯ получаю сообщение об ошибке, изменения как-то успешно отражаются в БД.
Как я уже говорил, на XAMPP все отлично работает.
ОШИБКА на хостинге:
Warning: Packets out of order. Expected 2 received 3. Packet size=48
in..... line 39
Warning: Database::query(): MySQL server has gone away in..... line 39
Warning: Database::query(): Error reading result set's header
in.....line39
Fatal error: Uncaught PDOException: SQLSTATE[HY000]General error: 2006
MySQL server has gone awayin.......<--SOME VERY LONG TEXTS-->
Буду очень признателен, если кто-нибудь сможет пролить свет на то, почему я получаю эту ошибку.
Прошу прощения, если это глупый вопрос!