my $col="insert into table mytable ("; my $val="values ("; foreach (param()) { $col.="$_,"; $val.="?,"; push(@arr,param($_)); # Beware! this will break if any variables have multiple values. } $val=~s/,$//; $col=~s/,$//; $statement="$col) $val)"; $sth=$dbh->prepare($statement); $sth->execute(@arr); #### my $sth=$dbh->prepare("insert into table mytable (name,value) values (?,?)"); foreach (param()) { $sth->execute($_,param($_)); # will only insert the first value if a variable has multiple values }