$sth = $dbh->prepare( sprintf "insert into %s (%s) values (%s) on duplicate key update $columns[0]=values($columns[0]),$columns[1]=values($columns[1])", $dbh->quote_identifier( $tablename #### printf "insert into %s (%s) values (%s) on duplicate key update %s=values(%s),%s=values(%s)", $dbh->quote_identifier( $tablename ), join( ',', map { $dbh->quote_identifier($_) } @columns ), join( ',', ('?') x @columns ), ????