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

Форум MySQL

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

 

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

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

тема: Ввод кириллицы
 
 автор: Vincento   (23.12.2010 в 16:27)   письмо автору
 
 

Подскажите пожалуйста почему у меня в базу данных не вводятся русские буквы? Английские норм, цифры тоже, а русские никак!

Кодировка таблиц указана как, в конфиге прописал - mysql_query("SET NAMES 'cp1251'");
все равно не хотит. ((

вот код:
  $text = $_POST['fio']; 
   $arr = preg_split("|[^\d\w]+|is", $text); 
   $i = 0;
   $fam = $arr[$i]; 
   $i++;
   $name = $arr[$i];
   $i++;
   $sour = $arr[$i];
  
  $zap_gl = "INSERT INTO tk_sotr ( `id` , `foto` , `fam` , 
`name` , `sour` , `date_d` , `date_m` , `date_y` , `dolj` , 
`otdel` , `m_tel` , `c_tel` , `pha` , `cab` , `kto` , 
`kem` , `pos` , `hide`, `ip` ) VALUES ( '', '', '$fam', 
'$name', '$sour', '$date_d', '$date_m', '$date_y', 
'$id_dol', '$id_ot', '".$_POST['m_tel']."', '".
$_POST['c_tel']."', '".$_POST['pha']."', '".$_POST['cab']."', '".$_POST['kto']."', '".
$_SESSION['id_pass']."', '0', 'show' , '".
$_SERVER['REMOTE_ADDR']."' )";

  Ответить  
 
 автор: lightning.say   (23.12.2010 в 16:53)   письмо автору
 
   для: Vincento   (23.12.2010 в 16:27)
 

комманды в MySQL:
SHOW CREATE DATABASE mybase;
SHOW CREATE TABLE userlist;
что показывают?

  Ответить  
 
 автор: Vincento   (23.12.2010 в 17:15)   письмо автору
 
   для: lightning.say   (23.12.2010 в 16:53)
 

SHOW CREATE DATABASE mybase; - *!40100 DEFAULT CHARACTER Set..
SHOW CREATE TABLE userlist; - Table 'tk.userlist' doesn't exist

а смысловую нагрузку можете рассказать? почему латинница вводится то?

  Ответить  
 
 автор: lightning.say   (24.12.2010 в 01:31)   письмо автору
 
   для: Vincento   (23.12.2010 в 17:15)
 

извиняюсь, имелось в виду ваша таблица tk_sotr и ваша бд. Нужно чтобы кодировка бд и кодировка таблицы совпадали, тогда и отображаться будет нормально все

  Ответить  
 
 автор: Trianon   (24.12.2010 в 01:42)   письмо автору
 
   для: lightning.say   (24.12.2010 в 01:31)
 

совершенно это необязательно.

[sub]Ну вот что с Вами делать?
Мимо пройти - ерунда останется утверждение не имеющее ничего общего с истиной, которое потом другие читать будут, и теряться от несоответствия реалиям.
Указать на ошибку - на дыбы взовьетесь. Кто мол я такой, чтобы Вас поправлять. Ну и что теперь?[/sub]

  Ответить  
 
 автор: lightning.say   (24.12.2010 в 02:00)   письмо автору
 
   для: Trianon   (24.12.2010 в 01:42)
 

почему нет? сами же говорили об этом... мол кодировка разная, какие еще вопросы...

  Ответить  
 
 автор: Trianon   (24.12.2010 в 02:25)   письмо автору
 
   для: lightning.say   (24.12.2010 в 02:00)
 

Я говорил о разных кодировках сайта (приложения, charset of content-type text/html) , клиентского соединения (то есть кодировки, в которой принимается запрос character_set_connection, кодировки, в которой выдается результат character_set_results ) и кодировки самих полей в таблицах.
Вот это должно совпадать обязательно.
Кодировка самой БД тоже лучше бы соответствовала - тогда при создании новых таблиц без явного указания, в таблицах с кодировкой будет ОК. В остальном влияния почти нет.
Основной акцент был на соответствие content-type , set names и table/column charsets. Не БД.

  Ответить  
 
 автор: lightning.say   (24.12.2010 в 11:31)   письмо автору
 
   для: Trianon   (24.12.2010 в 02:25)
 

Вы так много говорите что уже наверно забыли кому что советовали, в моей теме изначально шла речь о кодировке таблицы и кодировке бд, или будете отказыватьсяя от своих слов?
http://softtime.ru/forum/read.php?id_forum=3&id_theme=77188&page=1

  Ответить  
 
 автор: Trianon   (24.12.2010 в 12:35)   письмо автору
 
   для: lightning.say   (24.12.2010 в 11:31)
 

В той теме Вы в первом посте указали, что в конфиг-файле у Вас применяется
mysql_query("SET character_set_client='cp1251'");
mysql_query("SET character_set_results='cp1251'");
mysql_query("SET character_collation_connection='cp1251_general_ci'");

На этом и были основаны дальнейшие рекомендации

В последнем вдруг ни с того ни с сего оказалось, что конфиг этот используется минимум не везде.
И теперь еще имеете наглость что-то дышать по поводу моих слов?

  Ответить  
 
 автор: lightning.say   (24.12.2010 в 14:01)   письмо автору
 
   для: Trianon   (24.12.2010 в 12:35)
 

т.е. вы хотите сказать что если кодировка базы будет допустим latin1 а таблицы cp1251 и все вышеперечисленные параметры такие же как написанно, то отображаться будет все хорошо?

  Ответить  
 
 автор: Trianon   (24.12.2010 в 18:16)   письмо автору
 
   для: lightning.say   (24.12.2010 в 14:01)
 

Если скрипт Ваш в windows-1251, таблицы в cp1251, реальное содержимое в них в windows-1251, и Вы указываете при установлении соединения Вы указываете SET NAMES 'cp1251' , то кодировка БД нигде влияния не оказывает.

Два исключения:
1.Весьма экзотический запрос LOAD DATA INFILE будет брать файл в кодировке выбранной БД, в скриптах php практически не применяемый.
2. Попытка создать новую таблицу без указания кодировки. Тогда таблица унаследует кодировку БД.

Пруфлинк:http://dev.mysql.com/doc/refman/5.1/en/charset-database.html

  Ответить  
 
 автор: lightning.say   (24.12.2010 в 14:05)   письмо автору
 
   для: Trianon   (24.12.2010 в 12:35)
 

.

  Ответить  
 
 автор: ride   (24.12.2010 в 12:36)   письмо автору
 
   для: lightning.say   (24.12.2010 в 11:31)
 

я бы на вашем месте не спорил, а попытался бы понять что вам говорят
>> автор: lightning.say (24.12.2010 в 01:31)
>>Нужно чтобы кодировка бд и кодировка таблицы совпадали

>> автор: Trianon (24.12.2010 в 01:42)
>>совершенно это необязательно
>>Я говорил о разных кодировках сайта (приложения, charset of content-type text/html) , клиентского соединения (то есть кодировки, в которой принимается запрос character_set_connection, кодировки, в которой выдается результат character_set_results ) и кодировки самих полей в таблицах.
>>Вот это должно совпадать обязательно.
>>Кодировка самой БД тоже лучше бы соответствовала - тогда при создании новых таблиц без явного указания, в таблицах с кодировкой будет ОК.

в примере по ссылке, как раз, говорится о клиентском соединении ( ваш set names ), и о кодировках полей в таблицах (с этим у вас было все нормально).

  Ответить  
 
 автор: lightning.say   (25.12.2010 в 06:45)   письмо автору
 
   для: Trianon   (24.12.2010 в 01:42)
 

вы прям как Иисус глаголящий истину, а я по вашему лжепророк? я лишь высказываю свое субъективное мнение которое может быть либо истиной или ложью как и у любого здесь присутствующего... и пусть в меня первым бросит камень говорящий одну лишь истину.

  Ответить  
 
 автор: neadekvat   (23.12.2010 в 17:32)   письмо автору
 
   для: Vincento   (23.12.2010 в 16:27)
 

Какая кодировка полей то стоит?

  Ответить  
 
 автор: Vincento   (23.12.2010 в 17:49)   письмо автору
 
   для: neadekvat   (23.12.2010 в 17:32)
 

cp1251_general_ci

  Ответить  
 
 автор: Vincento   (24.12.2010 в 00:39)   письмо автору
 
   для: neadekvat   (23.12.2010 в 17:32)
 

$arr = preg_split("|[^\d\w]+|is", $text);
- регулярное выражение не работает с киррилической строкой, как исправить, подскажите?

  Ответить  
 
 автор: Vincento   (24.12.2010 в 00:51)   письмо автору
 
   для: Vincento   (24.12.2010 в 00:39)
 

Мудрить не стал как хотел , использовал стандарт


$arr = preg_split("/[\s,]+/", $text); 

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

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