Php Mysqli Aynı Anda İki Farklı Tablo Güncelleme

23/06/2018, 14:30

serkandiker

İyi günler php ile mysql veritabanındaki iki farklı tabloyu güncellemek için iki farklı sorgu kullandığımda ilk sorgu sorunsuz çalışıyor ama ikinci sorgu zaman zaman hata vermeksizin tamamlanmıyor.Bu şekilde iki tabloyu eş zamanlı güncellemek için örnek bir kod varmı ????
23/06/2018, 22:25

ozanakkaya

Merhaba, kullandığınız sorgu kodlarını görebilir miyiz??
24/06/2018, 03:35

ozguryasin

Merhaba;

Commit & RollBack fonksiyonu ile sorunu çözersin. İki sorgun sorunsuz çalışırsa commit eder, biri çalışmazsa rollback edip iki sorgu işlemini iptal eder. Diğer bir detişle Commit te tüm işlemler olumlu ise yazar, Rollback iilem sırasında sorun oluşursa hepsini iptal eder. Bu fonksiyonu bankalar bir hesaba para aktarırken kullanır. Örneğin para göndereceksiniz, hesabınızdan para düşer karşı hesaba eklenir ise commit gerçekleşir, sizden para düşüp karşı tarafa eklenmesse eollback olup işlem iptal edilir, karşı tarafa para gitnediği gibi sizin hesabınızda eklenme olmaz
25/06/2018, 11:18

serkandiker

Kod:
mysql_query("START TRANSACTION");
$flag = true;
$query = "INSERT INTO testing (myid) VALUES ('test')";

$query2 = "INSERT INTO testing2 (myid2) VALUES ('test2')";

$result = mysql_query($query) or trigger_error(mysql_error(), E_USER_ERROR);
if (!$result) {
$flag = false;
}

$result = mysql_query($query2) or trigger_error(mysql_error(), E_USER_ERROR);
if (!$result) {
$flag = false;
}

if ($flag) {
mysql_query("COMMIT");
} else {        
mysql_query("ROLLBACK");
}
Tesekkur ederim yukaridaki gibi bir ornek buldum sorunu cozecegini dusunuyorum ilginiz icin tekrar tesekkur ederim
25/06/2018, 11:25

ozguryasin

çözecektir Commit & RollBack  ta bir nevi if else fonksiyonu gibi çalışır. iki veya daha fazla olay gerçekleşirse devam eder eğer bir tanesi gerçekleşmezse diğer olasılığa geçer ve hepsini iptal eder.