in reply to Compound Sql Statement
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();
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Compound Sql Statement
by Doyle (Acolyte) on Feb 25, 2005 at 16:06 UTC |