1

Тема: Проблема со вставкой кириллических данных в столбец типа char

У меня есть столбец name тип char 15 символов в него нужно вставлять  русские имена но пишет ошибку, английские без проблем. Подскажите пожалуйста как настроить чтобы русские имена вставлялись а то не могу понять?

2

Re: Проблема со вставкой кириллических данных в столбец типа char

kery
Попробуй вставить "Россия" - что тебе напишет MySQL?

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

3

Re: Проблема со вставкой кириллических данных в столбец типа char

Вот что получается,
Ошибка
SQL-запрос: 

INSERT INTO `in` ( `name` )
VALUES (

'Россия'
)

Ответ MySQL: 

#1406 - Data too long for column 'name' at row 1

А если по английски всё нормально
SQL-запрос:INSERT INTO `in` ( `name` )
VALUES (
'Russia'
);

4 (изменено: Rash, 2006-08-11 23:47:47)

Re: Проблема со вставкой кириллических данных в столбец типа char

kery
Уточни версию MySQL, плиз

Какое значение default-character-set в твоем my.ini? Попробуй cp1251

5 (изменено: Hanut, 2006-08-12 00:37:39)

Re: Проблема со вставкой кириллических данных в столбец типа char

Из-за неверно выставленной кодировки в базу записываются данные в виде html сущностей (по моему). Соответственно каждый символ съедает не один байт, а шесть (кажется). Что-то вроде (&-#039;). (Без дефиса после амперсанда. Пришлось вставить, чтобы скрипт форума не выводил кавычку).

Правильное решение только одно - настроить кодировку БД.
Из него вытекает:
1) При соединении с БД устанавливать корректный SET NAMES.
2) Использовать Юникод (я бы выбрал именно это).
3) Настроить на кирилицу конфигурационный файл MySQL - my.ini.

Неправильное решение:
Увеличить количество символов в столбце name. Ничего хорошего не даст, так как сортировка (может и ещё что-то) будет производиться некорректно.

В данном посте админ оставил ссылку на статью, которую надо читать, до просветления. Если после прочтения всё ещё будут вопросы (в чём я сомневаюсь) - задавай - поможем.
http://forum.php-myadmin.ru/viewtopic.php?pid=117#p117

6

Re: Проблема со вставкой кириллических данных в столбец типа char

Всем спасибо за ответы получилось прописал в mysql.ini кодировку для сервера и клиента cp1251, всё заработало!

7

Re: Проблема со вставкой кириллических данных в столбец типа char

Теперь вот господа какая проблема появилась с phpMyAdmin все работает а вот из командной строки перестал открываться  монитор Mysql и выдает вот какую ошибку:

MYSQL Character set cp1251 is not a compiled Character set and is not specified in the "C:\mysql\\share\charsets\index.xml" file

MYSQL  Набор символов cp1251 не является скомпилированным Набором символов и не определен в файле "C:\mysql\\share\charsets\index.xml"

8

Re: Проблема со вставкой кириллических данных в столбец типа char

kery
Посмотри ещё раз ту статью, ссылка на которую находится в моём предыдущем сообщении.

Проблема заключается в том, что MySQL ищет файл набора символов по вшитому в исполняемый файл пути C:\mysql. Необходимо настроить my.ini на точный путь до файла с набором символов. Задаётся он директивой - character-sets-dir. Вписывается данная директива в разделы [client] и [mysqld] конфигурационного файла.

В моём случае директива выглядит следующим образом:
character-sets-dir="D:/Program Files/Programming/MySQL Server 5.0/share/charsets"

Делай по аналогии.
После изменений не забудь перезапустить MySQL сервис.