http://www.perlmonks.org?node_id=251966


in reply to Clean Up MySQL Code

Here's a slightly different approach - I create a load of SQL statements, put them in an array,

foreach my $sql (@sql) { unless ($sth=run_sql($sql)){ die "Failed in processing \"".$sql."\"\n"; } } #Use them like this... my $result = $sth->fetchall_arrayref;

and then run them using this subroutine -

# #run_sql # subroutine that does all of the work # sub run_sql{ my $sql = shift; my $sth = $dbh->prepare($sql); if (!$sth) { die "Error:" . $dbh->errstr ." while preparing ".$sql."\n"; } if (!$sth->execute) { die "Error:" . $sth->errstr ." while executing ".$sql."\n"; } return $sth; } # run_sql

The idea here is that I like to pass statement handles around ($sth), which I can then do whatever I want with. I find this much more flexible than passing result sets around. YMMV!

Happpy Easter,

--
Anthony Staines