my $colnum = 21; my $sql_placeholders = '(?' . ',?' x $colnum . ')'; my $sql_insert_handle = $dbh->prepare_cached( 'INSERT INTO mytable ' . $sql_placeholders . ' VALUES ' . $sql_placeholders ); <...> # yada yada yada # generate comma-separated column names and values <...> $sql_insert_handle->execute($columns,$values);