Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfügen mehrerer Werte in mehrere Spalten aus einem Datenarray unter Verwendung einer PDO-vorbereiteten Anweisung für MySQL

Ja, bindParam bindet einen Parameter an einen Variablennamen (Referenz), kein Wert, wie im Handbuch steht .

Es gibt jedoch eine einfachere Syntax für Ihre Situation. PDOStatement::execute kann ein Array von Werten annehmen.

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);

}