mysql ошибка #1366 - Incorrect string value: - не записывается русский текст
Primary tabs
Forums:
Изменение параметров кодировок SQL запросом
Смена через конфигурационный файл -- для всей СУБД
Cкорее всего эта ошибка связана с неверной кодировкой передаваемых в базу данных.
а точнее - настройки базы данных (или таблицы) не соответствуют кодировке передаваемых данных.
Если кодировка базы данных и таблиц в ней задана корректно, то откройте конфигурационный файл MySQL my.ini
в нём должно значится (в секторе [mysqld]):
[mysqld] ... .... ..... character-set-server=utf8
также добавьте сразу после этой строки порядок "сравнения/сличения" по -умолчанию (например = utf8_unicode_ci):
collation-server=utf8_unicode_ci
Если же там написано что-то вроде:
character-set-server=latin1
то исправьте))
Если предыдущее не помогло
Если предыдущее не помогло, то следует убедится, что collation (порядок сравнения) для текстовых столбцов выставлен именно в той кодировке, которая нам нужна.
Именно collation для столбца - в моём случае оказался виновником проблем ))
При создании таблицы порядок сравнения указывается в конце команды, например так:
CREATE TABLE `message` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NULL DEFAULT '1', `text` VARCHAR(500) NULL DEFAULT NULL, `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `image_id` INT(10) NULL DEFAULT '1', `title` VARCHAR(120) NULL DEFAULT '[\'no title\']', `ps` VARCHAR(120) NULL DEFAULT 'no pips - machines only =) ', `type` VARCHAR(120) NULL DEFAULT '0', `time` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), INDEX `user_id` (`user_id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=20;
Источник:
Помог комментарий к этой заметке = http://nemcd.com/2010/03/mysql-warning-1...
- Log in to post comments
- 23320 reads