Benim kod mysql_insert_id () uygulaması ile ilgili bir soru

2 Cevap php

"Devam" adında bir düğme tıklanıp ve ikinci kez "Ekle olduğunda ben girdi verilerinin işlenmesi için bir if...else döngü var olduğu bir sayfa var teslim olduğunda, bu sayfayı iki kez döndürülür, yani sepeti ".... Şimdi bu durumda Düğme zaman" "Devam if döngü veriler veritabanında sokulduğu idam ve yenilemeler gibi tüm giriş görüntü almak daha sonra tıklandığında veri ve başka bir düğme "Sepete ekle" elde edilir, bu sefer .. ne zaman Sepete ekle kod else durumu / döngü kısmına dahil tıklandığında yürütülür ..

Şimdi burada veriler başlangıçta If kısmen sokulur ve daha sonra else yürütülür sanki benim soru, bu yüzden ben başka bölümünde işlev mysql_insert_id() kullanabilirsiniz Geçen if kısmına yerleştirilen veri getirmek için?

Aşağıda bahsediyorum ben kod türüdür:

If(Button Continue is clicked)
{
  insert query for a product table......
}
else Button Add to Cart is Clicked
{
  mysql_insert_id(); to fetch last id inserted in the above above loop/condition.. 
}

Yani else kısmında son eklenen id alabilirim?

2 Cevap

Ben senaryo anlamak, o hayır. mysql_insert_id (ve mySQL kuzeni LAST_INSERT_ID() ) will return the last insert ID valid for the current connection only. İşte size bir sonraki sayfada geçerseniz, yeni bir bağlantı kurulmuş olacağı anlamına gelir ve {[(3) }] çalışmayacaktır.

Bir geçici çözüm sağ sorguyu yaptıktan sonra bir oturum değişkeni içine insert kimliğini koyarak olabilir - o zaman diğer sayfalarda mevcut olacak. (Bir kullanıcı birden fazla açık sekme / pencere vardır ve aynı anda iki rezervasyon yaptığında Sadece dikkatli olun - Her rezervasyon işlemi için tanımlayıcı çeşit kullandığınızdan emin olun.)

bu yüzden başka kısmen son eklenen id alabilirim?

Sen yapamazsın. Eğer insert_id almaya çalışıyor olmalıdır tek yer sadece INSERT yaptıktan sonra olduğunu. Siz oturumda asla deposu işlem belirli bir veri gerekir - yani birden fazla ekleme kimlikleri ve farklı sayfalar arasında bu bilgi aktarmak gerekirse, bu değişiklik olmadığından daha sonra kayıtları tek bir 'master' kaydı (örneğin alışveriş sepeti) başvuru yapması gerekir, onun ömür boyu o oturumda this kayıt için tanımlayıcı depolamak için güvenli olacaktır.

C.