sql >> Databasteknik >  >> RDS >> Mysql

Infoga flera värden i flera kolumner från en mängd data med hjälp av en PDO-förberedd sats för MySQL

Ja, bindParam binder en parameter till ett variabelnamn (referens), inte ett värde, som manualen säger .

Det finns dock en enklare syntax för din situation. PDOStatement::execute kan ta en rad värden.

public function insert($table, $cols, $values){

    $placeholder = array();
    for ($i = 0; i < count($values); $i++)
      $placeholder[] = '?';

    $sql = 'INSERT INTO '. $table . ' (`' . implode("`, `", $cols) . '`) ';
    $sql.= 'VALUES (' . implode(", ", $placeholder) . ')';

    $stmt = $this->dbh->prepare($sql);
    $stmt->execute($values);

}


  1. Oracle E-Business Suite Architecture i 12.2

  2. Skillnaden mellan VARCHAR2(10 CHAR) och NVARCHAR2(10)

  3. MySQL's now() +1 dag

  4. Finns det några goda skäl till att jag inte ska använda - (streck) i fältnamn i MySQL?