@esvlad
Веб-разработчик

Ошибка при запросе к БД, на хостинге, как быть?

Разрабатываю сайт на Laravel 8, возникает ошибка при группировке , на домашнем ПК все нормально, на хостинге ошибка, в настройках (config/database) 'strict' => false, прописал. Но все равно ошибка. Попробовал отправить запрос в phpMyAdmin, отправляет нормально Может подскажете, что не так?

Хостится сайт на jino.ru

Текст ошибки с запросом
Illuminate\Database\QueryException
SQLSTATE[42000]: Syntax error or access violation: 1055 'es-vlad_ucsnemaservis.users.full_name' isn't in GROUP BY (SQL:
select distinct `users`.`id`, `users`.`full_name`, `users`.`birthday`, `users`.`programm_type`, `users`.`created_at`, `users`.`online`, `users`.`status`, `subdivisions`.`title` as `subdivision`, `positions`.`title` as `position`, `education_session`.`test_default`, `education_session`.`test_additional` 
from `users` 
left join `subdivisions` on `users`.`subdivision` = `subdivisions`.`id` 
left join `positions` on `users`.`position` = `positions`.`id` 
left join `education_session` on `users`.`id` = `education_session`.`user_id` and `education_session`.`last` = 1 
left join `test_history` on `education_session`.`id` = `test_history`.`session_id` 
where `users`.`role_id` = 0 and `test_history`.`theme_id` in (6, 11) and `test_history`.`protocol` = 1 
group by `users`.`id` 
order by `users`.`full_name` asc limit 25 offset 0


В config/database прописано:
'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => false,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
@galaxy
Версия какая mysql на хостинге? Судя по этому - 5.5.x.
Определять же функциональные зависимости между колонками mysql научился в версии 5.7

С другой стороны, я вообще не понимаю смысл этого запроса - никаких агрегаций там все равно нет, зачем группировка?

Вероятно, получить результат как на локальной базе поможет выключение only_full_group_by из sql_mode
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы