Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на множество стойности в множество колони от масив от данни с помощта на подготвен израз на PDO за MySQL

Да, bindParam свързва параметър с име на променлива (справка), а не стойност, както казва ръководството .

Има обаче по-опростен синтаксис за вашата ситуация. PDOStatement::execute може да приема масив от стойности.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. VS 2019 и MySQL Entity Framework дублира името на базата данни

  2. Най-добра практика за PHP/MySQL система за назначаване/резервиране

  3. Връзка едно към едно в MySQL

  4. MIN() – Намерете минималната стойност в колона в MySQL

  5. Как да задам набор от символи за MySQL в RODBC?