Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PDO MySQL:Wstaw wiele wierszy w jednym zapytaniu

Prostym sposobem na uniknięcie komplikacji byłoby coś takiego

$stmt = $pdo->prepare('INSERT INTO foo VALUES(:a, :b, :c)');
foreach($data as $item)
{
    $stmt->bindValue(':a', $item[0]);
    $stmt->bindValue(':b', $item[1]);
    $stmt->bindValue(':c', $item[2]);
    $stmt->execute();
}

Jednak to wykonuje instrukcję wiele razy. Lepiej więc, jeśli stworzymy długie pojedyncze zapytanie, aby to zrobić.

Oto przykład, jak możemy to zrobić.

$query = "INSERT INTO foo (key1, key2) VALUES "; //Prequery
$qPart = array_fill(0, count($data), "(?, ?)");
$query .=  implode(",",$qPart);
$stmt = $dbh -> prepare($query); 
$i = 1;
foreach($data as $item) { //bind the values one by one
   $stmt->bindValue($i++, $item['key1']);
   $stmt->bindValue($i++, $item['key2']);
}
$stmt -> execute(); //execute



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać wszystko przed/po określonym znaku w MySQL — SUBSTRING_INDEX()

  2. Zresetuj hasło roota MySQL za pomocą instrukcji ALTER USER po instalacji na Macu

  3. Łatwa konfiguracja serwera internetowego za pomocą XAMPP

  4. Jak mogę pozbyć się tych komentarzy ze zrzutu MySQL?

  5. Wyzwalacz MySQL po aktualizacji tylko w przypadku zmiany wiersza