| Вопрос: |
Добрый день! Несколько часов не могу решить проблему. Изначально делал сайт на локальном сервере, сегодня решил перенести на удалённый, при переносе стали искажаться русские символы, получаемые из базы данных. - База данных импортирована в точности та же, что была на локальном сервере.- Код сайта не менялся нигде, за исключением изменённых параметров подключения в файле db_params.php, т.к. имя, юзер, хост и пароль изменились.- Сразу после подключения к БД используется $db->exec('SET NAMES utf-*'); (использую для подключения PDO)UPD:Буквально во время написания решил проверить ещё один вариант и проблему удалось решить, но решения я не понял.Раньше был такой код в методе класса подключения к БД (Db.php):public static getConnection() { $paramsPath = ROOT . '/*db_params.php'; $params = include($paramsPath); $dsn = "mysql:host={$params['host']};dbname={$params['dbname']}"; $db = new PDO($dsn, $params['user'], $params['password']); $db->exec('SET NAMES utf-*'); return $db; }Поменял вот так:public static getConnection() { $paramsPath = ROOT . '/*db_params.php'; $params = include($paramsPath); $dsn = "mysql:host={$params['host']};dbname={$params['dbname']}"; $db = new PDO($dsn, $params['user'], $params['password'], array( PDO::MYSQL_ATTR_INIT_COMMAND => "**" )); *; }Почему заработало, есть ли у Вас ответ на этот вопрос? По сути, то же самое. Повторюсь, что прежний код отлично работал на локальном сервере (** везде и всюду). |
| Ответ: |
Здравствуйте . Приведите пожалуйста ссылку на страницу на которой можно увидеть проблему и опишите проблему подробнее
код приводить не нужно |
| Вопрос: |
Проблему решил, теперь уже только разве что искусственно её воспроизводить. Ладно, не буду беспокоить, просто хотел разобраться в вопросе, спасибо за уделённое время. |
| Ответ: |
Спасибо за обращение в техническую поддержку.
|
|