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

Форум MySQL

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

 

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

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

тема: в таблицу не добавляются записи с полями, содержащими русские буквы
 
 автор: rodmial   (25.05.2013 в 17:56)   письмо автору
 
 

возникает ошибка mysql_error

  Ответить  
 
 автор: Valick   (25.05.2013 в 19:33)   письмо автору
 
   для: rodmial   (25.05.2013 в 17:56)
 

разбирайтесь с кодировками, таблицы БД , соединения с БД и самого файла скрипта.

  Ответить  
 
 автор: cheops   (25.05.2013 в 23:45)   письмо автору
 
   для: rodmial   (25.05.2013 в 17:56)
 

В какой кодировке текст, который вы помещаете в базу данных?
В какой кодировке таблицы базы данных?

  Ответить  
 
 автор: rodmial   (26.05.2013 в 08:25)   письмо автору
 
   для: cheops   (25.05.2013 в 23:45)
 

windows1251, cp1251

  Ответить  
 
 автор: Valick   (26.05.2013 в 08:27)   письмо автору
 
   для: rodmial   (26.05.2013 в 08:25)
 

покажите часть кода отвечающую за соединение с БД ну и сам инсерт покажите

  Ответить  
 
 автор: rodmial   (26.05.2013 в 10:41)   письмо автору
 
   для: Valick   (26.05.2013 в 08:27)
 

$mysql_host="localhost";
$mysql_login="root";
$mysql_pass="";
$mysql_bd="mybd1";
$mysql_table="tbl_gb";
$dbcnx=@mysql_connect($mysql_host,$mysql_login,$mysql_pass);
if(!$dbcnx){echo "Ошибка: Нет доступа к серверу mysql";exit();}
$db=@mysql_select_db($mysql_bd,$dbcnx);
if(!$db){echo "Ошибка: Нет доступа к базе данных mysql";exit();}
if(!mysql_query("create table if not exists
$mysql_table(id_mess int(11) auto_increment primary key,
user varchar(20),
email varchar(20),
mess varchar(255)) engine=myisam charset cp1251")){
    echo "Ошибка: Невозможно создать таблицу.";exit();
}
$user_name=mysql_real_escape_string(@$_POST['user_name']);
$user_email=mysql_real_escape_string(@$_POST['user_email']);
$user_mess=mysql_real_escape_string(@$_POST['user_mess']);
if(strlen($user_name) || strlen($user_email) || strlen($user_mess)){
    if(check_name($user_name) && check_email($user_email) && check_mess($user_mess)){
           if(mysql_query("insert $mysql_table values (0,'$user_name','$user_email','$user_mess')")){

  Ответить  
 
 автор: Sfinks   (26.05.2013 в 13:44)   письмо автору
 
   для: rodmial   (26.05.2013 в 10:41)
 

> возникает ошибка mysql_error
В таких случаях лучше сразу показывать полный текст ошибки и код, ее вызывающий. Получили бы ответ в первом же сообщении.

Ошибка в синтаксисе:
insert INTO $mysql_table values (0,'$user_name','$user_email','$user_mess')

  Ответить  
 
 автор: rodmial   (26.05.2013 в 14:24)   письмо автору
 
   для: Sfinks   (26.05.2013 в 13:44)
 

что касается слова INTO, то оно необязательное.
тем более что набранное латинницей вставляется нормально.
а сообщение об ошибке вот такого типа:
Incorrect string value: '\xF1\xEE\xEE\xE1\xF9\xE5...' for column 'mess' at row 1

  Ответить  
 
 автор: cheops   (26.05.2013 в 20:01)   письмо автору
 
   для: rodmial   (26.05.2013 в 10:41)
 

Сразу после установки соединения, настройте кодировку соединения при помощи запроса
...
mysql_query("SET NAMES cp1251");
...

  Ответить  
 
 автор: rodmial   (26.05.2013 в 20:41)   письмо автору
 
   для: cheops   (26.05.2013 в 20:01)
 

заработало. спасибо вам большое.

  Ответить  
 
 автор: rodmial   (27.05.2013 в 14:20)   письмо автору
 
   для: rodmial   (26.05.2013 в 20:41)
 

заработало, но не совсем. хоть ошибки и не возникает, вместо русских букв вставляется черт знает что.

  Ответить  
 
 автор: cheops   (27.05.2013 в 21:24)   письмо автору
 
   для: rodmial   (27.05.2013 в 14:20)
 

А HTML-страница, с которой отправляются данные для вставки в какой кодировке?

  Ответить  
 
 автор: rodmial   (28.05.2013 в 13:15)   письмо автору
 
   для: cheops   (27.05.2013 в 21:24)
 

windows-1251

mysql 5.5.30

указание кодировки для столбца делу не помогло.

  Ответить  
 
 автор: cheops   (28.05.2013 в 22:07)   письмо автору
 
   для: rodmial   (28.05.2013 в 13:15)
 

>вместо русских букв вставляется черт знает что.
А как выглядит искаженный текст?

  Ответить  
 
 автор: rodmial   (29.05.2013 в 11:45)   письмо автору
 
   для: cheops   (28.05.2013 в 22:07)
 

вот - сообщение

слушайте. до меня дошло. у меня ведь используется ajax. там ведь utf-8.
простите пожалуйста. вопрос снят.

  Ответить  
 
 автор: cheops   (29.05.2013 в 21:24)   письмо автору
 
   для: rodmial   (29.05.2013 в 11:45)
 

Выглядит как Windows-1251, который пытаются читать в кодировке UTF-8

Вы через браузер результаты смотрите? Посмотрите какая кодировка выставлена в самом браузере?

  Ответить  
 
 автор: rodmial   (29.05.2013 в 21:51)   письмо автору
 
   для: cheops   (29.05.2013 в 21:24)
 

да нет, в браузере Windows-1251.
спасибо вам большое.

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

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