Ще искате да използвате заместители и никога интерполиране на променливи в низове. Вероятно трябва да използвате режим на замърсяване
и де-замърсявайте вашия param
стойности, преди да ги използвате, ако безопасността е важна за вас. Документация за заместителите тук
.
Опитайте нещо като:
my @values = map param($_), @account_field_order; # add values to array
push @values, $status; # for simplicity
$new_row = join ", ", ("?") x @values; # add ? for each value
... # basically same code as before, except the execute statement:
$sth->execute(@values); # arguments given will be inserted at placeholders