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

Форум MySQL

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

 

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

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

тема: не заносит в базу кирилицу
 
 автор: dxm_   (27.10.2009 в 23:51)   письмо автору
 
 

латиницу заносит в базу, на кирилице выдает ошибку

Произошла исключительная ситуация (ExceptionMySQL) при обращении к СУБД MySQL.

Incorrect string value: '\xFB\xF6\xEF\xF3\xEF\xF6...' for column 'name' at row 1
INSERT INTO system_news
VALUES (NULL,
'ыцпупцуцп',
'упуцпцупцуп',
'2009-10-27 22:32:00',
'',
'',
'',
'show')

Ошибка в файле C:\htdocs\site\dmn\news\newsadd.php в строке 103.

...или

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation '='
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\htdocs\new\registr.php on line 31
Incorrect string value: '\xEF\xF0\xE8\xE2\xE5\xF2' for column 'name' at row 1
Warning: Cannot modify header information - headers already sent by (output started at C:\htdocs\new\registr.php:27) in C:\htdocs\new\registr.php on line 46

  Ответить  
 
 автор: Trianon   (28.10.2009 в 00:10)   письмо автору
 
   для: dxm_   (27.10.2009 в 23:51)
 

Какая кодировка БД?
Какая кодировка таблицы?
Какая кодировка соединения с сервером?

А точнее - почему одна из них latin1 ?

  Ответить  
 
 автор: dxm_   (28.10.2009 в 00:23)   письмо автору
 
   для: Trianon   (28.10.2009 в 00:10)
 

попробую поменять кодировку mysql

  Ответить  
 
 автор: Trianon   (28.10.2009 в 01:04)   письмо автору
 
   для: dxm_   (28.10.2009 в 00:23)
 

Попробуйте.

У mysql есть с полдесятка (или чуть больше) различных сущностей, называемых "кодировка".

  Ответить  
 
 автор: sasha1133   (28.10.2009 в 01:17)   письмо автору
 
   для: Trianon   (28.10.2009 в 01:04)
 

Кстати по поводу кодировки. Всё таки в списке там много каких то кодировок. Так вот, разобраться в этом всём я вряд ли быстро смогу. Хотелось бы узнать, что надо выбирать, чтобы всё работало "как надо". У меня сайт с кириллицей и латиницей, в базе тоже будет храниться и кириллица и латиница. Что надо сделать, чтобы всё было правильно? И какую кодировку лучше выбирать в веб странице, win-1251 или utf-8?

  Ответить  
 
 автор: Mirage   (28.10.2009 в 12:12)   письмо автору
 
   для: sasha1133   (28.10.2009 в 01:17)
 

Лично я предпочитаю utf-8.
>Что надо сделать, чтобы всё было правильно?
Ну во первых что бы кодировка таблиц была в - utf8_unicode_ci.
При подключении к СУБД указать с какой кодировкой Вы будете работаеть
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8'");
mysql_query("SET NAMES 'utf8'");

Хотя все эти запросы можно было заменить одним mysql_query("SET NAMES 'utf8'");

PHP файлы да и не только JavaScript, CSS вообщем все рабочие файлы надо сохранять в кодировке UTF-8.
И конечно указать в мета теге кодировку
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  Ответить  
 
 автор: Trianon   (28.10.2009 в 12:24)   письмо автору
 
   для: Mirage   (28.10.2009 в 12:12)
 

>Ну во первых что бы кодировка таблиц была в - utf8_unicode_ci.

И для этого следует базе данных и таблицам эту кодировку установить.
Соответствующими запросами ALTER DATABASE и ALTER TABLE (прямо или косвеенно, через phpMyAdmin, к примеру)
Причем установить еще до заполнения таблиц.


>Хотя все эти запросы можно было заменить одним mysql_query("SET NAMES 'utf8'");
Так бы и написали.

>И конечно указать в мета теге кодировку
><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Чушь. Кодировка документ должна быть указана в поле заголовка, а не в теле.
Проще всего это сделать (для всех документов сайта) с помощью директивы .htaccess AddDefaultCharset

  Ответить  
 
 автор: Trianon   (28.10.2009 в 12:24)   письмо автору
 
   для: sasha1133   (28.10.2009 в 01:17)
 

Лучше разобраться.
Вы куда-то торопитесь?

  Ответить  
 
 автор: dxm_   (30.10.2009 в 17:31)   письмо автору
 
   для: Trianon   (28.10.2009 в 12:24)
 

И для этого следует базе данных и таблицам эту кодировку установить.
Соответствующими запросами ALTER DATABASE и ALTER TABLE (прямо или косвеенно, через phpMyAdmin, к примеру)
Причем установить еще до заполнения таблиц.

сделал utf8, в командной строке заносит в базу

из скрипта выдает

Incorrect string value: '\xF3\xF4\xE0\xF3\xE0' for column 'name' at row 1

  Ответить  
Rambler's Top100
вверх

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