SQL Польза бекапов

Или странный случай с кодировкой

Пользу бекапов никто под сомнение не ставит, все знают, чем чаще, тем лучше. Но сегодня не об этом. Всё начиналось вполне обычно, новый, почти пустой сайт. Был залит из gitHub через консоль, там же прописали настройки. Открыли в браузере, проверили - всё работает, ну и хорошо. Так бы всё и осталась, не потребуйся мне запустить его на локальной машине, дабы не заморачиваться с наполнением решил воспользоваться бекапом с рабочей машины. Вот тут всё и началось.

При беглом просмотре дампа в глаза бросилась битая кодировка, вся киррилица была в кракозябрах. Естественно, первым делом открыл сайт, всё работает нормально. Как так-то?! Попытка открыть базу через phpMyAdmin, тоже не увенчалась успехом - опять кракозябры. То есть при сохранении скриптом запроса в базу, сохраняются кракозябры. Но при запросе в базу скриптом возвращается нормальный текст. 

Не думаю, что нужно описывать процесс поиска, в результате выяснилось, что строка отвечавшая за определение кодировки для PDO была комментированна и более нигде не определена. Вылечили добавлением charset=utf8mb4 

                $this->pdo = new \PDO(
                    $this->type . ':host=' . $this->host . ';dbname=' . $this->name  . '; charset=utf8mb4',
                    $this->user,
                    $this->pass
                );

Так что проверяйте бекапы! У кого бекапы, тот и сильнее.

Grewi 2024