Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDO dan mengikat beberapa set nilai selama penyisipan - baru-baru ini

Secara teori, mungkin terdengar seperti satu pernyataan lebih efisien karena Anda menghindari membuat beberapa panggilan ke server MySQL, tetapi kenyataannya adalah bahwa ini adalah optimasi mikro dan Anda terlalu memperumit kode Anda untuk mendapatkan keuntungan apa pun.

Hal yang keren tentang pernyataan yang disiapkan adalah bahwa itu disiapkan sekali dan dapat dieksekusi beberapa kali. Ini sudah menghemat penguraian pernyataan SQL beberapa kali. Cukup siapkan pernyataan di luar loop, lalu jalankan di dalam loop.

$names = [['Joe', 'Smith'], ['Fred', 'Sampson'], ['Lisa', 'Pearce']];
$stmt = $pdo->prepare('INSERT INTO table (firstName, lastName) VALUES(?,?)');
foreach ($names as $name) {
    $stmt->execute($name);
}

Jika Anda membungkus semuanya dalam sebuah transaksi seperti yang disarankan oleh Akal Sehat Anda di komentar, maka tidak ada perbedaan kinerja yang mencolok dibandingkan dengan satu pernyataan besar.

$names = [['Joe', 'Smith'], ['Fred', 'Sampson'], ['Lisa', 'Pearce']];
$stmt = $pdo->prepare('INSERT INTO people (firstName, lastName) VALUES(?,?)');
$pdo->beginTransaction();
foreach ($names as $name) {
    $stmt->execute($name);
}
$pdo->commit();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Posting dan dapatkan secara bersamaan di php

  2. mysql case sensitif di utf8_general_ci

  3. PHP mengonversi datetime ke detik

  4. Cara Membuat Database MySQL di cPanel

  5. Memperbarui beberapa baris dengan nilai yang berbeda