Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 161 раз!

Форум

Добро пожаловать, Гость!

Кирилица при записи в базу

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
readonly
Сообщения: 4
C нами: 4 года 1 мес

Непрочитанное сообщение readonly » 14 окт 2012, 12:37

приветствую, о отцы!
недавно я встал на стезю изучения PHP, посему вопрос мой будет глуп и недостоин вашей мудрости. Я же униженно и смиренно приму все оскорбления в свой адрес (которыми изобилует сей дивный форум) не ропща на судьбу. Ибо не ставлю под сомнение мудрость вашу и приму суровость за благо.

А горе у меня такое: при записи в базу через веб-форму кирилица не пишется в базу и при выборке в браузер вообще не выводится (даже кракозябрами). См на скрине HeidiSQL
http://i44.fastpic.ru/big/2012/1014/66/b9f85fd1588f17d18b7ac0b8b4616266.png
нижняя строка - это как раз инсерт через веб-форму. при этом латиница пишется, ошибок нет
верхние строки с кирилицей я внес инсертом через HeidiSQL, при этом кирилица пишется и выводится в браузер.
При коннекте к базе я кодировку не ставлю. Насколько я понимаю, при этом должна использоваться дефолтная ЮТФ-8. В самих инсертах, насколько я понял, тоже кодировка не указывается http://phpclub.ru/mysql/doc/insert-select.html

Что я делаю не так?

примечания
1. настройки Open Server не менял
2. версия Open Server 4.5.9
3. в конфиги мускула не лазил
4. в документации Open Server свою проблему не нашел
5. через поиск по форуму не нашел похожих вопросов

Аватара пользователя
Максим
Cейчас: в сети
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 14 окт 2012, 12:48

1) Ваша проблема не имеет вообще никакого отношения к Open Server и ничего в настройках менять не нужно.

2) Создайте базу в кодировке utf8_general_ci

3) Не используйте при подключении к базе логин root (это обязательно, иначе кодировка всегда будет latin1)

4) После подключения к базе делайте к ней следующие запросы (установка кодировки соединения):
mysql_query('set names utf8');
mysql_query('set character set utf8');
mysql_query('set character_set_client=utf8');
mysql_query('set character_set_results=utf8');
mysql_query('set character_set_connection=utf8');
mysql_query('set character_set_database=utf8');
mysql_query('set character_set_server=utf8');


5) При выводе информации на веб-страницу используйте кодировку utf-8 на самой странице, иначе будут кракозяблы.

P.S. Писать идиотизм про судьбу, мудрость и прочее в следующих темах не нужно, иначе нарветесь на бан. Пишите пожалуйста строго по делу.

readonly
Сообщения: 4
C нами: 4 года 1 мес

Непрочитанное сообщение readonly » 14 окт 2012, 15:45

Максим, это только новые ошибки вызвало

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'127.0.0.1' (using password: NO) in F:\OpenServer\domains\develop.ru\lessons\set_charset.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in F:\OpenServer\domains\develop.ru\lessons\set_charset.php on line 5


логин/пароль к базе точно правильные, юзер имеет все галки кроме супер. пробовал под дефолтными mysql:mysql - те же ошибки появляются.

При выводе информации на веб-страницу используйте кодировку utf-8 на самой странице, иначе будут кракозяблы.


да, в браузере при выводе использую utf-8

Аватара пользователя
Максим
Cейчас: в сети
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 14 окт 2012, 16:17

Я вам показал решение проблемы, ваш вопрос с кодировкой предоставленная инструкция решает. Ваши действия, в плане вставить код куда надо и как надо, приводят к вышеуказанным ошибкам, а не мои инструкции.

Вы видимо вставили код ДО соединения с базой, вот PHP и пытается подключится со стандартными параметрами. Или же в вашем скрипте нужно использовать линк на подключение, тогда вам нужно подставить его в каждый вызов функции, типа:
вместо
mysql_query('set character_set_client=utf8');
делать
mysql_query('set character_set_client=utf8',$link);

readonly
Сообщения: 4
C нами: 4 года 1 мес

Непрочитанное сообщение readonly » 14 окт 2012, 18:16

Нет, так тоже не работает. Причет в Убунте тот же самый код работает и нет ошибок. В любом случае проблему понял и буду разбираться.
Благодарю за помощь!


Вернуться в «Модули и инструменты»

Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и 1 гость