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.