Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

ikat nilai INSERT INTO mysql perl

Anda seharusnya memberikan daftar argumen, satu untuk setiap tanda tanya, bukan argumen skalar tunggal yang berisi string argumen. Saat saya menjawab pertanyaan Anda sebelumnya, saya menyuruh Anda untuk melakukan:

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

Dimana $new_row adalah string placeholder Anda, bukan daftar argumen Anda. Tidak:

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

Karena $new_row dianggap sebagai satu argumen, karena merupakan skalar. Anda memerlukan larik atau daftar dengan panjang yang sama dengan jumlah tanda tanya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL:mengedit/menyimpan file my.cnf

  2. Koneksi MySQL VB.NET

  3. java Hibernasi kueri yang tidak perlu pada objek yang terpisah

  4. Apa efek menggunakan susunan biner?

  5. MySql cursors.execute() dengan hanya satu parameter:Mengapa string diiris ke dalam daftar?