Php - Ekle Autoincrement Değer - Ebeveyn / Çocuk Masaları için - eşzamanlılık Sorunu

2 Cevap php

Birçok ilişki birinin basit bir şema düşünün. Veli Masa'nın No Child tabloda başvurulmaktadır.

Php Ben ifadeyi mysql_query($query) kullanarak tabloya bir satır eklemek istiyorum. Sonra mysql_insert_id() ile son eklenen satırın id alacak. Sonra ben çocuğun tabloya başka bir satır eklemek için bu kimliği kullanacağız.

Benim bir soru olduğunu ne yukarıdaki iki ifadeler eğer ardına etmeyin bir php sayfası için aynı anda oluyor birden istekleri, orada olabilir çünkü diğer (yani, örneğin, daha sonra orada ebeveyn oluyor iki ekler vardır ve çocuk üzerinde iki uçlar)? Eşzamanlılık sorunları olabilir. Peki bu üstesinden gelirsiniz?

Herhangi bir fikir?

2 Cevap

MySQL belgelerinde gibi:

The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients.

Yani ... sorun yok. Başka nedenlerden dolayı, ben (Doctrine gibi) ORM kullanmanızı öneririz rağmen.

Aradığınızda mysql_insert_id() it gets the last inserted id for that connection, bu nedenle iki PHP komut birbirine engel olmaz.