in reply to Re^2: DBI - Table names & placeholders
in thread DBI - Table names & placeholders

The bottom loop should be

for (@$sales_inserts) { my $table = shift(@$_); my $sth = $dbh->prepare(' INSERT INTO '.$dbh->quote_identifier($table).' ( ItemID, Day, Revenue, Count ) VALUES ( ?, ?, ?, ? ) '); $sth->execute(@$_); }
or
my %sth_cache; for (@$sales_inserts) { my $table = shift(@$_); my $sth = $sth_cache{$table} ||= $dbh->prepare(' INSERT INTO '.$dbh->quote_identifier($table).' ( ItemID, Day, Revenue, Count ) VALUES ( ?, ?, ?, ? ) '); $sth->execute(@$_); }

Replies are listed 'Best First'.
Re^4: DBI - Table names & placeholders
by McDarren (Abbot) on Apr 26, 2010 at 06:24 UTC
    Thanks.

    A variation on your first example did the trick for me. Still not exactly what I would have liked, but it gets the job done :)

    Cheers,
    Darren

      Still not exactly what I would have liked

      Maybe if you told us what you wanted?

        Well, it just irks me that I have to do a separate prepare and execute for every single row of data that I want to insert - as opposed to "prepare once, execute many times".

        But, it's no biggie - the job is done and the data is flowing.