Ben genel olarak dil üzerinde çalışma beni açmıştır son zamanlarda PHP bazı web geliştirme çalışmaları yapıyorum. Bugüne kadar ben bir veritabanı ile etkileşim için kullanmak gerekli değildir, ama ben bunu yapmak için uygun bir çok fonksiyonu sağlar biliyor.
Ben temel SQL bilmek ve bir veritabanındaki verilere temel manipülasyon ile çalışmış olmasına rağmen, ben PHP / JavaScript / SQL etrafında kendi web sitelerini temel web geliştiricileri aynı anda aynı verileri değiştirerek kullanıcılarını yönetmek edebiliyoruz nasıl anlamıyorum.
Örneğin, onlar kaydolmak zaman iki takım birine kullanıcıları bölen bir blackjack web sitesi var diyelim. Bir kullanıcı oyunu kazanır her zaman, kendi kazançların bir bölümü bu takım için çalışan toplam eklenir.
Yani bu böyle bir şey görünüyor bunu fonksiyonu için sözde kod Diyelim ki:
...
$total = mysql_query("SELECT score FROM team1");
$total = $total + $mytotal;
mysql_query("UPDATE team1 SET score='".$total."'");
...
İki oyuncu aynı anda oynuyorsanız, bu diğeri öyle bir kullanıcılar değişiklikler derhal yazılır olacak, masa artırmak ve güncellemek için bir şans var önce ikisi çağrı SEÇ olacağı çok mümkün.
Benim soru nasıl biri bu önlemek mi, nedir? Bu kod düzeyinde PHP kullanılarak yapılır, ya da bunu önlemek için bu yardım kullandığınız her türlü veritabanı tarafından sağlanmaktadır özellikleri vardır mı?
Ben biraz araştırma yaptım, ve PHP semaphore mekanizma sağlamaz, ve ben de mysql bir LOCK table feature sunuyor fark ettik gibi görünüyor. Ancak, ben, ya da eğer, uygulamada kullanılan bu hangi emin değilim.