Автор Тема: MySQL - засада...  (Прочитано 4362 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
MySQL - засада...
« : 19 Марта 2007, 15:04:18 »
Здрасте!

пишу так

  $sth 
$dbh->prepare(qqSELECT nameauthordpiwidkeywordspfiledeskmodel_release FROM dpi_pics_test WHERE id=\'$pid\' });
  $sth->execute();
   ($tname, $tauth, $tdpi, $twid, $tkeys, $tfile, $tdesk, $tmodel) = $sth->fetchrow_array();
  $sth->finish();

  $sth = $dbh->prepare(qq{
    insert into dpi_pics (id, name, author, dpi, wid, keywords, pfile, desk, act, model_release)
    values (\'$pid\', \'$tname\', \'$tauth\', \'$tdpi\', \'$twid\', \'$tkeys\', \'$tfile\', \'$tdesk\',\'2\',\'$tmodel\')     });
  $sth->execute(); $sth->finish();


По порядку:
Есть две таблицы с информацией о фото: dpi_pics_test и dpi_pics....

Хочу вытащить запись из одной и вставляю в другую...
Есть в них такое поле "author"...

В моем случае = 1... (в настройках бд имеет тип INT)

Все нормально копируется, но в ошибки выпадает следующее:

test
.plDBD::mysql::st execute failedOut of range value adjusted for column \'author\' at row 1 at c:\\www\\server\\cgi-bin\\admin\\test.pl line 57


Почему? Что тут не так?
Космическая игрушка

Оффлайн Egorsha

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 60
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MySQL - засада...
« Ответ #1 : 19 Марта 2007, 16:01:26 »
Может в кавычках проблема?

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
MySQL - засада...
« Ответ #2 : 19 Марта 2007, 16:35:14 »
А если так:

my $values = join ",", map{$dbh->quote($_)} $pid, $tname, $tauth, $tdpi, $twid, $tkeys, $tfile, $tdesk,2,$tmodel;
                $dbh->do( "INSERT INTO dpi_pics ( id
                                                , name
                                                , author
                                                , dpi
                                                , wid
                                                , keywords
                                                , pfile
                                                , desk
                                                , act
                                                , model_release
                                                )
                                         VALUES ($values)"
                        );


И ещё, если происходит чтение из одной таб и сразу запись в другую, то зачем Вам столько бестолковых переменных?
« Последнее редактирование: 19 Марта 2007, 16:45:27 от vladsu »
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
MySQL - засада...
« Ответ #3 : 19 Марта 2007, 16:44:55 »
Да проблема в том, что ведь все копируется в таблицу...
Причем правильно...

Непонятно...
Пойду на MySQL форуме задавать вопрос...
Космическая игрушка

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
MySQL - засада...
« Ответ #4 : 19 Марта 2007, 16:46:40 »
Проблема наверняка в кавычках.
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MySQL - засада...
« Ответ #5 : 24 Марта 2007, 11:02:10 »
map{"\'$dbh->quote($_)\'"}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28