Mysql
 sql >> база данни >  >> RDS >> Mysql

свързване на стойности INSERT INTO mysql perl

Трябва да предоставите списък на аргументи, по един за всеки въпросителен знак, а не нито един скаларен аргумент, който съдържа низовете на аргументите. Когато отговорих на въпроса ви преди ти казах да направиш:

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

Където $new_row е вашият заместващ низ, а не списъкът ви с аргументи. Не:

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

Тъй като $new_row се брои като един аргумент, тъй като е скаларен. Имате нужда от масив или списък със същата дължина като броя на въпросниците.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Експортиране на записи в excel файл

  2. Сравняване на MySQL и Java Time

  3. Използване на псевдоним на колона в същата клауза SELECT

  4. Как да извлечем <map> в Hibernate

  5. SQL изразът игнорира параметъра where