Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Data too long for column 'caption' at row 1 - при вводе русского текста
 
 автор: nato   (26.06.2008 в 13:09)   письмо автору
 
 

Добрый день!
При вставке русских данных в таблицу выдается ошибка

Data too long for column 'caption' at row 1

Латиница вставляется корректно.

Ниже привожу дамп таблицы:

CREATE TABLE `news_all` (
`id` int(11) NOT NULL auto_increment,
`caption` text character set cp1251 NOT NULL,
`content` text character set cp1251 NOT NULL,
`url` varchar(255) character set cp1251 NOT NULL default 'http://',
`showing` binary(1) NOT NULL,
`up_date` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `news_all`
--

INSERT INTO `news_all` (`id`, `caption`, `content`, `url`, `showing`, `up_date`) VALUES
(1, 'wq', 'qw', 'http://', 0x30, '2008-06-12'),
(2, 'd', 'd', 'http://', 0x30, '2008-06-12');

   
 
 автор: cheops   (27.06.2008 в 01:00)   письмо автору
 
   для: nato   (26.06.2008 в 13:09)
 

Перед вставкой русских символов в таблицу выполняете запрос
SET NAMES cp1251;

   
 
 автор: nato   (27.06.2008 в 16:44)   письмо автору
 
   для: cheops   (27.06.2008 в 01:00)
 

Спасибо! Все заработало!

Но нужно было еще перед выбором базы данных
написать строчку

mysql_query("/*!40101 SET NAMES 'cp1251' */") or die("Error: " . mysql_error());

а потом уже
mysql_select_db("test",$db);

   
 
 автор: AcidTrash   (27.06.2008 в 22:41)   письмо автору
 
   для: nato   (27.06.2008 в 16:44)
 

> /*!40101 SET NAMES 'cp1251' */

И зачем этот маскарад? Насчет /*!40101.

Это делается просто
mysql_query("SET NAMES 'cp1251'")

   
 
 автор: Trianon   (27.06.2008 в 22:46)   письмо автору
 
   для: cheops   (27.06.2008 в 01:00)
 

В таблице у вас параметр DEFAULT CHARSET=latin1 - нужно сменить кодировку...

[поправлено модератором]

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования