I have the feeling that you are using the wrong approach.
What about using an array of values and just one SQL statement with placeholders?
my @values = ( [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ], [ 'a', 'b', 'c' ] ); my $sql = "Insert into tableone values(?, ?, ?); my $loadHandle = $dbh->prepare($sql); for (@values) { $loadHandle->execute(@$_) or die "Could not execute SQL statement $sql " . " with values ( @$_ )... $DBI::errstr\n "; }
However, if what you want to do is execute different statements, here's another way:
my @SQL_statements = ( "create table x(i int)", "insert into x values (1)", "update x set i = i * 10 " ); $dbh->begin_work(); for (@SQL_statements) { eval { $dbh->do($_)}; if ($@) { $dbh->rollback(); die "error executing query '$_', $DBI::errstr\n"; } } $dbh->commit();
In reply to Re: Compound Sql Statement
by dbwiz
in thread Compound Sql Statement
by Doyle
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |