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

bradcathey has asked for the wisdom of the Perl Monks concerning the following question:

Fellow Monasterians,

I'm new to the INSERT ... ON DUPLICATE KEY UPDATE concept and now have been staring at this for an hour and not seeing the problem. Here's the code:

my $stmt = 'INSERT INTO contact_form (' . join(',', keys %sql) . ') VA +LUES (' . join(',', ('?') x keys %sql) . ') ON DUPLICATE KEY UPDATE ' +. join(' = ?, ', keys %sql) . ' = ?';

Data::Dumper gives me:

$VAR1 = 'INSERT INTO contact_form (more_info,city,name,address,comment +s) VALUES (?,?,?,?,?) ON DUPLICATE KEY UPDATE more_info = ?, city = ? +, name = ?, address = ?, comments = ?';

Run-time error message

...for the right syntax to use near ' city = , name = , address = , co +mments ='

What am I missing? (BTW, it works fine if I leave off the

ON DUPLICATE KEY UPDATE ' +. join(' = ?, ', keys %sql) . ' = ?'
)

—Brad
"The important work of moving the world forward does not wait to be done by perfect men." George Eliot