sql >> Database >  >> RDS >> Mysql

Meerdere waarden invoegen in meerdere kolommen uit een reeks gegevens met behulp van een PDO voorbereide instructie voor MySQL

Ja, bindParam bindt een parameter aan een variabelenaam (referentie), geen waarde, zoals de handleiding zegt .

Er is echter een eenvoudigere syntaxis voor uw situatie. PDOStatement::execute kan een reeks waarden aannemen.

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. SELECT-lijst staat niet in GROUP BY-clausule en bevat niet-geaggregeerde kolom .... incompatibel met sql_mode=only_full_group_by

  2. MYSQL &innoDB veranderen dynamisch AUTO_INCREMENT van een tabel

  3. SQL - Vraag om het IP-adres van de server

  4. PostgreSQL date() met tijdzone