http://qs321.pair.com?node_id=11114146


in reply to DBD::Pg - $sth->execute($csv_var) ERROR

perlygapes:

I wouldn't expect that to work: In order to prepare/compile the SQL statement, PostgreSQL is going to want to know the column names in advance. I'd suggest something a bit more like this:

# Given a list of column names build a placeholder list of the same le +ngth my @columns = ( 'customer_ID', 'reference1', 'foo', ... ); my $placeholders = join(", ", map { '?' } @columns); # Build the SQL statement my $SQL = "INSERT INTO myTable (" . join(", ", @columns) # column names . ") VALUES ($placeholders)"; my $STH = $DBH->prepare_cached($SQL); # Then if you have a reference to an array of values, use it like: my $rValues = [ 'Customer_1', 'ref5', 1, ... ]; $STH->execute(@$rValues); # Or you can hand it an array: my @values = ( 'Customer_2', 'ref99', 3, ... ); $STH->execute(@values); # or even just explicit values: $STH->execute("Customer 5", "ref3", 7, ... );

...roboticus

When your only tool is a hammer, all problems look like your thumb.