sql >> Databáze >  >> RDS >> Mysql

svázat hodnoty INSERT INTO mysql perl

Měli byste poskytnout seznam argumentů, jeden pro každý otazník, ani jeden skalární argument, který by obsahoval řetězce argumentů. Když jsem odpověděl na vaši otázku předtím jsem vám řekl, abyste to udělali:

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

Kde $new_row je váš zástupný řetězec, nikoli váš seznam argumentů. Ne:

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

Protože $new_row se počítá jako jeden argument, protože jde o skalár. Potřebujete pole nebo seznam o stejné délce, jako je počet otazníků.



  1. Existuje operátor postgres NEJBLIŽŠÍ?

  2. chyba mysql:překročen maximální počet připojení za hodinu

  3. Přidání dat do databáze Cloud Firestore

  4. Předobjednávka výpisu GROUP BY