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

Bagaimana menjalankan beberapa kueri penyisipan dalam SQL menggunakan PHP sekaligus?

Ini berarti Anda memerlukan transaksi .

Transaksi adalah serangkaian kueri yang semuanya dieksekusi ok atau jika salah satu gagal - semuanya gagal. Ini untuk memastikan Anda tidak berakhir dengan data sampah di tabel Anda.

Jangan

  • Jangan gunakan multikueri.
  • Jangan gunakan mysql_* fungsi.
  • Jangan gunakan sisipan massal.

Orang yang menyuruh Anda melakukan itu sama sekali tidak tahu apa yang mereka lakukan, abaikan saja.

Lakukan

Contoh kode - JANGAN salin tempel

$dsn = 'mysql:dbname=testdb;host=127.0.0.1;charset=utf8mb4';
$user = 'dbuser';
$password = 'dbpass';

$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$insert['first'] = $pdo->prepare("INSERT INTO table SET col1 = :val, col2 = :val2");
$insert['second'] = $pdo->prepare("INSERT INTO another_table SET col1 = :val, col2 = :val2"); 

$pdo->beginTransaction();

$insert['first']->bindValue(':val', 'your value');
$insert['first']->bindValue(':val2', 'anothervalue');
$insert['first']->execute();

$insert['second']->bindValue(':val', 'your value');
$insert['second']->bindValue(':val2', 'anothervalue');
$insert['second']->execute();

$pdo->commit();

Kode di atas akan menyimpan data dalam dua tabel HANYA jika kedua penyisipan berhasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengimpor file excel ke database MySQL

  2. Desain Basis Data untuk menyimpan Pesan Obrolan antar orang

  3. Berapa ukuran kolom int(11) di mysql dalam byte?

  4. Periksa dan Optimalkan Database MySQL Secara Otomatis dengan Crontab/Cron

  5. Apa kebalikan dari GROUP_CONCAT di MySQL?