Mysql
 sql >> Database >  >> RDS >> Mysql

valori di associazione INSERT INTO mysql perl

Dovresti fornire un elenco di argomenti, uno per ogni punto interrogativo, non un singolo argomento scalare che contiene le stringhe degli argomenti. Quando ho risposto alla tua domanda prima, ti ho detto di fare:

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

Dove $new_row è la tua stringa segnaposto, non la tua lista di argomenti. Non:

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

Perché $new_row conta come un argomento, poiché è uno scalare. Hai bisogno di un array o di un elenco della stessa lunghezza del numero di punti interrogativi.