![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| strength2008 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.1.2012 Репутация: нет Всего: нет |
Здравствуйте.
Возник следующий вопрос. Пытаюсь выполнить простой инсерт в таблицу на mySQL сервере, однако код выдает ошибки (цикл работает): DBD::mysql: ramming\Perl\DBI.pl line 72. Код:
Собсно, непонятно, кто виноват - драйвер mysql или же perl-овая библиотека, в этой ошибке - ибо, синтаксис с точки зрения mysql вполне верный, и почему значения для инсерта выдаются за названия вставляемых полей. непонятно. Уже долго мучаю эту тему. но что-то не движется с места, может, я не верный синаксис perl-а использую? Спасибо. |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Вы кавычки не забыли? Что в запросе, что в определении массива.
|
|||
|
||||
| strength2008 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.1.2012 Репутация: нет Всего: нет |
Pfailed, в определении массива точно нет, там же ссылка на анонимный массив идет:
а в запросе где я мог кавычки забыть?
|
||||
|
|||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: нет Всего: 11 |
|
|||
|
||||
| strength2008 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.1.2012 Репутация: нет Всего: нет |
Absinthe, т.е. надо написать:
так? Добавлено @ 08:47 Вернее, вот так написал:
но результат тот же. Это сообщение отредактировал(а) strength2008 - 19.1.2012, 08:48 |
||||
|
|||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: нет Всего: 11 |
strength2008, отладка. Распечатай запрос и посмотри на него.
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
Unknown column 'forth_word' in 'field list' наводит на мысль о грамматической ошибке.
вы уверены, что колонка именно так называется? |
|||
|
||||
| strength2008 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.1.2012 Репутация: нет Всего: нет |
Absinthe, смотрел, нормально по идее все получается:
дает, как и ожидалось, Insert into NewT(word,description) Values (forth_word,forth_word_desc) и.т.п. т.е. вроде нормальный SQL-код. Но ошибка остается при этом. arto, нет, колонка именно что так не называется. Но почему-то вставляемое значение интерпретируется как поле для вставки, о чем и пишет мне ошибку: DBD::mysql:smileb do failed: Unknown column 'forth_word' in 'field list' at d:\Prog Это сообщение отредактировал(а) strength2008 - 19.1.2012, 18:18 |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
>Insert into NewT(word,description) Values (forth_word,forth_word_desc)
Должно быть Insert into NewT(`word`,`description`) Values ('forth_word','forth_word_desc') |
|||
|
||||
| strength2008 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.1.2012 Репутация: нет Всего: нет |
Pfailed,
написал так:
Но, теперь просто выдает синтаксическую ошибку и все. Я уже в 3 книжках посмотрел код, который был первоначально у меня - у авторов вроде бы все работает, у меня нет( Смотрел у Ларри Уолла в книжке и в "perl и системное администрирование". Это сообщение отредактировал(а) strength2008 - 19.1.2012, 18:55 |
|||
|
||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: нет Всего: 11 |
strength2008, твоя ошибка в том, что использование MySQL из Perl предполагает знание MySQL, а не только Perl. Сначала поработай с MySQL в консоли(советую dbForge) и только потом используй ее в ЯП.
Ты путаешь строковое значение и столбец. |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
||||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Документацыя по модулям perl добывается при помощи команды perldoc. Например, perldoc DBI -- документацыя по DBI, perldoc DBD::mysql -- документацыя по возможностям драйвера mysql в DBI.
Ваш код в примере -- это какой-то ужас. Начиная с того, что он не запустится, поскольку нет use DBD и вообще всего соединения с базой. Постить такие отрывки вполне нормально -- если Вы и уверены в том, что правильно написали остальную обвязку, и уверены, что и окружающие её с лёгкостью напишут. Когда Вы только начали изучать этот раздел подобная самоуверенность несколько несвоевременна. Кроме того, он ни при каких обстоятельствах не можэт выдать того, что Вы написали. То есть Вы ещё и что-то не то скопировали. Впрочем, ключевую вещь, которую в обязательном порядке следует понять перед тем, как писать на DBI -- раздел "Placeholders and Bind Values" из его документацыи. Замечу, что ими совершэнно необязательно пользоваться -- но их надо понимать. |
|||
|
||||
| strength2008 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.1.2012 Репутация: нет Всего: нет |
Absinthe,
Pfailed, окончательно разобрался. большое вам спасибо. Да, я действительно подзабыл, что в MySql `и ' это разные символы, и несут разную семантическую нагрузку. |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |