my $stmt = 'INSERT INTO contact_form (' . join(',', keys %sql) . ') VALUES (' . join(',', ('?') x keys %sql) . ') ON DUPLICATE KEY UPDATE '. join(' = ?, ', keys %sql) . ' = ?'; #### $VAR1 = 'INSERT INTO contact_form (more_info,city,name,address,comments) VALUES (?,?,?,?,?) ON DUPLICATE KEY UPDATE more_info = ?, city = ?, name = ?, address = ?, comments = ?'; #### ...for the right syntax to use near ' city = , name = , address = , comments =' #### ON DUPLICATE KEY UPDATE ' +. join(' = ?, ', keys %sql) . ' = ?'