PiCoderman
@PiCoderman
Design | Web | React | NodeJS | Linux

Кривое сохранение символов в MySql через PHP. Что делать?

Таблица (utf8_general_ci).
Файл PHP делающий запрос mysql_query() в utf-8 без bom.
Данные в этот файл отправляются из формы index.html, которая тоже в utf-8
  • Вопрос задан
  • 2527 просмотров
Пригласить эксперта
Ответы на вопрос 4
@asd111
смотри в сторону SET character_set_client, SET character_set_connection SET character_set_result ещё смотри set names и collation
habrahabr.ru/post/10983
Ответ написан
@isawillbenice
Была такая проблема помогло

mysql_set_charset('utf8', $db);
Ответ написан
@FanatPHP
Чебуратор тега PHP
Скорее всего, причина в повальной болезни современной школоты: фатальном неумении отслеживать причинно-следственные связи. Например, если при просмотре выводимых из БД данных, они отражаются неправильно, то делается вывод о том, что они записались неправильно. Или, как вариант - аффтар сам же совершает в коде какие-то глубокомысленные телодвижения, не понимая их смысла - просто потому что точно так же пацаны подсказали, а он тупо скопировал - и они-то как раз и портят данные.

Но в любом случае - проблема в неумении разделить процесс на этапы, и проконтролировать данные на каждом. Чтобы впоследстви хотя бы задать адекватный вопрос, типа "При передаче данных из браузера данные портятся". Или "при записи в БД данные портятся". Вместо этого мы получаем беспомощное "С данными что-то происходит, но что именно и в какой момент - ниняю".
Ответ написан
PiCoderman
@PiCoderman Автор вопроса
Design | Web | React | NodeJS | Linux
Сам спросил, сам ответил.
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARSET SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
Ответ написан
Ваш ответ на вопрос

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

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