Karena kedua penyisipan ini dijalankan secara independen, program lain yang berjalan secara bersamaan mungkin melihat database dalam keadaan di mana penyisipan pertama dilakukan tetapi yang kedua tidak.
Apakah ini masalah atau tidak tergantung pada logika aplikasi. Dalam kasus Anda, sulit untuk mengatakannya tanpa informasi tambahan. Mungkin tidak. Sebuah transaksi keuangan yang melibatkan dua rekening adalah contoh di mana adalah masalah:Anda tidak ingin jumlah semua saldo akun salah setiap saat.
Jika Anda merasa membutuhkan ini, Anda dapat membuat operasi menjadi atomik dengan mengorbankan kinerja:program lain akan melihat database sebelum penyisipan pertama, atau setelah penyisipan kedua. Ini bekerja seperti ini:
$result = FALSE;
if (mysql_query('BEGIN')) {
if (mysql_query($query1) &&
mysql_query($query2))
$result = mysql_query('COMMIT'); // both queries looked OK, save
else
mysql_query('ROLLBACK'); // problems with queries, no changes
}
Mesin penyimpanan harus mendukung transaksi, yaitu, harus InnoDB . Jika tidak, ini tidak akan bekerja secara diam-diam.