in reply to Re^2: DBD::Pg - $sth->execute($csv_var) ERROR
in thread DBD::Pg - $sth->execute($csv_var) ERROR

Oh the cake....yes, I know it's a lie, but it is just so tasty! :`(
Yes, $columns and $values are strings containing comma separated column names and column values I wish to insert into Pg.

I tried these, none of them work:

$sth->execute(@{$columns},@{$values}); $sth->execute(@columns,@values); $sth->execute(\@columns,\@values);

I thought $sth->execute($columns,$values); would be closer to passing the flat comma separated string Pg needs.

What is just not clear in the DBD::Pg cpan documentation is how many arguments $sth->execute(); expects or can take, and I can't see a really clear/obvious example of where a variable is used. Most instances just show a hard-coded value...not very helpful.

Replies are listed 'Best First'.
Re^4: DBD::Pg - $sth->execute($csv_var) ERROR
by soonix (Chancellor) on Mar 13, 2020 at 08:01 UTC
    You are on the right track with Re^2: DBD::Pg - $sth->execute($csv_var) ERROR, but to understand why this doesn't work
    I thought $sth->execute($columns,$values); would be closer to passing the flat comma separated string Pg needs.
    you need to be aware of the difference between
    • a string containing comma separated list of values (in Perl: a scalar)
    • a list of values (in Perl: a list or an array)
    So, even DBI could use "placeholded" column names, you'd have to execute ( split(/,\s*/,$columns), split(/,\s*/, $values))