Forum Webscript.Ru
Программирование => Perl => Тема начата: Error202 от 19 Марта 2007, 15:04:18
-
Здрасте!
пишу так
$sth = $dbh->prepare(qq{ SELECT name, author, dpi, wid, keywords, pfile, desk, model_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.pl: DBD::mysql::st execute failed: Out of range value adjusted for column \'author\' at row 1 at c:\\www\\server\\cgi-bin\\admin\\test.pl line 57
Почему? Что тут не так?
-
Может в кавычках проблема?
-
А если так:
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)"
);
И ещё, если происходит чтение из одной таб и сразу запись в другую, то зачем Вам столько бестолковых переменных?
-
Да проблема в том, что ведь все копируется в таблицу...
Причем правильно...
Непонятно...
Пойду на MySQL форуме задавать вопрос...
-
Проблема наверняка в кавычках.
-
map{"\'$dbh->quote($_)\'"}