Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bindungswerte EINFÜGEN IN mysql perl

Sie sollen eine Liste bereitstellen von Argumenten, eines für jedes Fragezeichen, kein einzelnes skalares Argument, das die Zeichenfolgen der Argumente enthält. Als ich Ihre Frage beantwortete zuvor habe ich dir gesagt, dass du Folgendes tun sollst:

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

Wobei $new_row ist Ihre Platzhalterzeichenfolge, nicht Ihre Argumentliste. Nicht:

$new_row .= "'" . param($field) . "', ";
...
$new_row .= "'$status'";
$sth->execute(qq($new_row)) or die $DBI::errstr;

Denn $new_row zählt als ein Argument, da es ein Skalar ist. Sie benötigen ein Array oder eine Liste mit der gleichen Länge wie die Anzahl der Fragezeichen.