Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу создать таблицу в MySQL, Perl + MySQL 
:(
    Опции темы
korob2001
Дата 26.4.2004, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Привет всем!
Нужно создать такую таблицу в MySQL:
Код

CREATE TABLE todo (
t        DATETIME NOT NULL,
content  VARCHAR(255) NOT NULL,
status   ENUM('не выполнено', 'выполнено', 'выполняется') NOT NULL,
INDEX(t)
);

Но не получается sad.gif Пытался создать через phpMyAdmin 2.3.0
Долго не мог понять в чём дело, но затем, методом тыка, всётаки выяснил в чём проблема. Опишу подробно.

Как выяснилось, таблица создаётся но при попытке вставить в неё какие либо значения таким вот запросом:
Код

$dbh->do(qq{
                  INSERT INTO todo SET t = NOW(),
                  status = 'не выполнено',
                  content = ?", undef, $content});

модуль DBI.pm ( Perl ) выдаёт такую ошибку:
Код
DBD::mysql::Db do failed: Unknown column 't' in 'field list' at C:\home\LOCALH~1\cgi-bin\MYSQL_~1\todo\todo1.pl line 24.


После этого пытаюсь просмотреть эту таблицу в phpMyAdmin 2.3.0, заметил что действительно в таблице есть три колонки, но две из них не имеют имени, только одна осталась такой как и ожидалось, status. Затем несколько раз удалял таблицу и пытался создать снова, результат оставался тем же. После нескольких попыток заметил что все буквы я, в моём случае их две в строке 'выполняется', были заменены следующими символами 'выполн','етс','', мне это не понравилось hmmm.gif Решил попробовать снова удалить таблицу и создать её же, только уже без букв я, точнее я заменил буквы я буквами y. Как вы наверное уже поняли всё заработало.

Но всё же мне интересно знать:

Почему MySQL не хочет работать с символом я?
Как это лечится?

Можно конечно оставить и символы y вместо я, а затем при каждом запросе, при помощи Perl, делать замену:
Код

$var =~ s/y/я/g;
или
$var =~ tr/y/я/;

Но мне почему-то кажется что это не самый лучший подход. smile.gif

Может у кого была такая проблема? Помогите понять smile.gif
Заранее спасибо за ваши ответы,
Денис

Это сообщение отредактировал(а) korob2001 - 26.4.2004, 04:38


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Secandr
Дата 26.4.2004, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

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



korob2001
Сделай в енум надписи английские (по 1-2 буквы), а в перле заведи массивчик и пиши $alert{$var} - проще менять название статуса и не нужно мучаться.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Vaulter
Дата 26.4.2004, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а вообще, что мешает сделать status интом,
0 - не выполнено
1 - выполнено
2 - выполняется

не спортивно конечно, но зато быстро ;)


--------------------
PM MAIL WWW ICQ   Вверх
korob2001
Дата 26.4.2004, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Большое спасибо. Всё понял. ;)


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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