Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка в базе 
V
    Опции темы
nepster
Дата 29.5.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



user posted image


Когда ввожу цифры или англ символы, все нормально, но когда русский текст вот такая ошибка, что это такое? 
PM MAIL   Вверх
Veve
Дата 29.5.2009, 19:55 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 1.1.2005
Где: Латвия, Рига

Репутация: 3
Всего: 13



Если мне не изменяет память, тооо... для кодировки русского алфавита нужны большее значения... тоесть больше памяти, места.. корочь что-то в этом роде. Типа такая же фича с SMS.  А может и нет :P

Это сообщение отредактировал(а) Veve - 29.5.2009, 19:56
PM MAIL ICQ Skype MSN   Вверх
nepster
Дата 29.5.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



я установил там параметр  text NOT NULL
PM MAIL   Вверх
cremnet
Дата 29.5.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.5.2009

Репутация: нет
Всего: нет



Все зависит от кодировки. Кирилица к примеру в Utf-8 как бы состоит из 2х символов. Может стоит использовать транслит?
PM MAIL   Вверх
unicross
Дата 29.5.2009, 20:39 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



nepster, у вас неправильно настроен сервер MySQL. Он у вас настроен на кодировку latin1, которая не допускает русских букв. Из-за этого и ошибка...

Открываем my.conf. Находим секцию
Код

[mysql]
default-character-set=latin1

и меняем на
Код

[mysql]
default-character-set=cp1251
character-sets-dir="C:/Program Files/MySQL/MySQL Server 6.0/share/charsets"

Далее находим секцию [mysqld]. В этой секции меняем строку
Код

default-character-set=latin1

на четыре строки 
Код

default-character-set=cp1251
character-sets-dir="C:/Program Files/MySQL/MySQL Server 6.0/share/charsets"
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake 

В той же секции находим строку
Код

default-storage-engine=INNODB

и заменяем ее на
Код

default-storage-engine=MYISAM

Сохраняем файл и перезагружаем компьютер.
Не забудьте заменить в пути версию MySQL на вашу.
Заново создаете таблицу и сразу указываете кодировку таблицы (cp1251), а также способ сортировки для столбца (cp1251_general_ci)...

PM MAIL WWW   Вверх
nepster
Дата 30.5.2009, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Цитата

 указываете кодировку таблицы (cp1251), а также способ сортировки для столбца (cp1251_general_ci)...




как это сделать из php ?
PM MAIL   Вверх
Sentox
Дата 30.5.2009, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Эта ошибка выводится если вводимый текст имеет больше символов для определённой колонки.
Я решил эту проблему расширением допустимого количества символов в ячейке.
Н-р: varchar(42) вместо допустим varchar(32)  
PM MAIL   Вверх
unicross
Дата 30.5.2009, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(nepster @  30.5.2009,  21:27 Найти цитируемый пост)
как это сделать из php ?

С помощью обычного SQL-запроса. Например:
Код

CREATE TABLE `car` (
   `id` INT NOT NULL AUTO_INCREMENT ,
   `model` VARCHAR( 255 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
   `color` VARCHAR( 255 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
   `descr` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
   PRIMARY KEY ( `id` ) 
) TYPE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci;

В PHP-скрипте необходимо указать строку
Код

   mysql_query("SET NAMES cp1251");

Цитата("Sentox")

Эта ошибка выводится если вводимый текст имеет больше символов для определённой колонки.
Я решил эту проблему расширением допустимого количества символов в ячейке.
Н-р: varchar(42) вместо допустим varchar(32)  

Sentox, у него поле text и указано всего 8 символов...
PM MAIL WWW   Вверх
nepster
Дата 30.5.2009, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



спс, работает 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.