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

Форум MySQL

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

 

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

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

тема: MySQL не хочет принимать русские буквы
 
 автор: Vasilij   (17.10.2007 в 14:00)   письмо автору
 
 

Дело вот в чем:
сделал таблицу в базе данных
и стоит задача заносить туда данные на русском

Английские слова принимает и записывает в базу данных
с помощью функции mysql_query(INSERT INTO tablica Values(......))
а русские буквы не хочет, даже если заношу русское слово только в один столбик
а в другие все по английскому или цифры, то есть не делает абсолютно никакой новой записи в
таблице

В файле подключения к базе данных прописал:

mysql_query('set names cp1251');
mysql_query("set character_set_client='cp1251'");
mysql_query("set character_set_results='cp1251'");
mysql_query("set character_set_connection='cp1251'");
mysql_query("set character_set_database='cp1251'");
mysql_query("set collation_connection='cp1251_general_ci'");

но это не помогает.

Причем в консоли (Windows) на команду: mysql -u root -p выдается ошибка

mysql: Character set 'cp1251' is not compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file

Может что-то при установке потерялось?

версия MySQL - 5.0.45-community-nt

   
 
 автор: cheops   (17.10.2007 в 14:28)   письмо автору
 
   для: Vasilij   (17.10.2007 в 14:00)
 

>mysql: Character set 'cp1251' is not compiled character set and is not specified in the 'C:
>\mysql\\share\charsets\Index.xml' file
Проследите, чтобы в конфигурационном файле my.ini директива default-character-set=cp1251 присутствовала только в секции [mysqld] и отсутствовала в секции [mysql].

   
 
 автор: cheops   (17.10.2007 в 14:29)   письмо автору
 
   для: Vasilij   (17.10.2007 в 14:00)
 

Т.е. вообще записи не появляется? А как добавляете запись? Обработку ошибок производите? Что сообщает MySQL сервер?

   
 
 автор: Vasilij   (17.10.2007 в 14:34)   письмо автору
 
   для: cheops   (17.10.2007 в 14:29)
 

Запись добавляю через форму (открыв файл в браузере) и далее работает скрипт PHP
англ. слова нормально записываются
но если есть хоть одно слово русское то записи не происходит вообще

я в этом новичок, и пока не знаю где искать записи об ошибках MySQL

тестирую все это на локальном хосте (Windows)

   
 
 автор: cheops   (17.10.2007 в 14:39)   письмо автору
 
   для: Vasilij   (17.10.2007 в 14:34)
 

>и далее работает скрипт
Приведите окрестности INSERT-запроса

   
 
 автор: Vasilij   (17.10.2007 в 14:40)   письмо автору
 
   для: cheops   (17.10.2007 в 14:39)
 

$name=htmlspecialchars(stripslashes($_POST['name']));
$phone=htmlspecialchars(stripslashes($_POST['phone']));
$salary=htmlspecialchars(stripslashes($_POST['salary']));


$query="INSERT INTO spysok VALUES('$name', '$phone', '$salary')";
mysql_query($query);

   
 
 автор: cheops   (17.10.2007 в 14:47)   письмо автору
 
   для: Vasilij   (17.10.2007 в 14:40)
 

Исправьте следующим образом
<?php
$name
=htmlspecialchars(stripslashes($_POST['name']));
$phone=htmlspecialchars(stripslashes($_POST['phone']));
$salary=htmlspecialchars(stripslashes($_POST['salary']));


$query="INSERT INTO spysok VALUES('$name', '$phone', '$salary')";
if(!
mysql_query($query)) exit("Ошибка - ".mysql_error()."<br>Запрос - ".$query);
?>

Что теперь выводит?

   
 
 автор: Vasilij   (17.10.2007 в 14:53)   письмо автору
 
   для: cheops   (17.10.2007 в 14:47)
 

Выводит вот что:

Ошибка - Incorrect string value: '\xD4\xE0\xEC\xE8\xEB\xE8...' for column 'name' at row 1
Запрос - INSERT INTO spysok VALUES('Фамилия', '000-000', '0.00')

может поменять тип данных в таблице с char(60) на text

   
 
 автор: cheops   (17.10.2007 в 14:58)   письмо автору
 
   для: Vasilij   (17.10.2007 в 14:53)
 

А файл со скриптом в какой кодировке набран?

   
 
 автор: Vasilij   (17.10.2007 в 15:02)   письмо автору
 
   для: cheops   (17.10.2007 в 14:58)
 

Все делал в кодировке windows-1251

начиная от начала страницы

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

и до конца

файл набраный в обычном блокноте (Windows)

   
 
 автор: cheops   (17.10.2007 в 16:11)   письмо автору
 
   для: Vasilij   (17.10.2007 в 15:02)
 

Когда сохраняете файл в выпадающем списке Кодировке выбирате ANSI или Юникод?

   
 
 автор: Vasilij   (17.10.2007 в 16:23)   письмо автору
 
   для: cheops   (17.10.2007 в 16:11)
 

Ничего не выбираю а просто сохраняю файл нажав CTRL+S
файлы с расширением .php

Выбор кодировки появляется только если нажать СОХРАНИТЬ КАК

   
 
 автор: cheops   (17.10.2007 в 16:57)   письмо автору
 
   для: Vasilij   (17.10.2007 в 16:23)
 

Хм... он ведь помоему по умолчанию в UNICODE файлы сохраняет...

   
 
 автор: Vasilij   (17.10.2007 в 17:10)   письмо автору
 
   для: cheops   (17.10.2007 в 16:57)
 

Прошу прощения за беспокойство

За последние 20 минут я сделал следующее:
(из-за того что были подозрения, что была плохая установка базы данных, может файл с интернета был испорчен, я не проверял суму md5)

снес базу данных вообще
скачал еще раз (каких то 43 МБ)
установил

Почему то работает:)
и русские слова уже записывает в базу данных
и консоль MySQL появилась (до этого появлялась на одну десятую секунды и исчезала)

   
Rambler's Top100
вверх

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