Mysql_pconnect olmadan PHP ile geçici tablolar kullanarak My SQL

2 Cevap php

Benim PHP kodu geçici tablolar kullanmak istiyorum. Bu postalanacaktır bir şeklidir. Ben oturum değişkenlerini ve dizileri kullanmak yapmak ama doldurulmuş bazı veriler tablo biçiminde saklanmalı ve kullanıcı (emin değilim) işe yarayabilir diziler ile bunu vb yazım hataları durumunda girdilerini silmek gerekir ama ben biraz yeniyim php de ve tablolar kullanarak çok daha basit görünüyor. Benim sorunum mysql_connect kullanarak tablo oluşturur ve veri satır ekler olduğunu ama benim 2 satır eklediğinizde mysql_pconnect tabloyu bırakarak değil çalışır ama en tablo örneğinde daha oluşturur ... Kullanma tablo düşünceye ve tekrar oluşturun Saatler ve silme giriş ait? ne bir karmaşa! Nasıl iyi geçici tablolar kullanabilir ve benim sayfa yenilenir onları droped değil? Kullanıcı sayfayı kapatır ve veritabanındaki tabloyu bırakarak eğer geçici tablolar kullanarak değil diğer sorunları neden olabilir.

2 Cevap

Bir karmaşa gibi geliyor! Ben size tüm geçici bir tablo kullanarak neden emin değilim, ama rastgele bir tablo adı oluşturmak ve bir oturum değişkeni atamak olabilir. Ama bu her kullanıcı için bir tablo var gibi derece yanlış!

Eğer bir veritabanı kullanmanız gerekiyorsa, SessionID denilen tabloya alan ekleyebilirsiniz. Eğer ekleme / silme referansı php Sessionıd ne zaman.

Sadece oturumda veri depolama muhtemelen olsa çok daha kolay olurdu ...

Daha iyi kalıcı bir tablo ve geçici satırları oluşturmak için. Yani, $form_data gibi tüm yarı-tam form verilerini tutan nesneyi tefrika ettik söylüyorlar. Yazısının sonunda, gerçekleşmesi gereken son şey $ form_date veritabanına saklanmalıdır ve çıkan satır id sizin $ _SESSION saklanabilir olmasıdır. Gibi bir şey:

$form_data=serialize($form_object); //you can also serialize arrays, etc.
//$form_data may also need to be base64_encoded

$q="INSERT INTO incomplete_form_table(thedata) '$form_data'";    
$r=mysqli->query($q);
$id=$mysql->last_insert_id;
$_SESSION['currentform']=$id;

Eğer bir sonraki sayfaya geldiğinizde sonra, bu gibi formu sulandırmak:

$q="SELECT thedata FROM incomplete_form_table WHERE id={$_SESSION['currentform']}";
$r=$mysql->query($q);
$form_data=$r->fetch_assoc();
$form=$form_data['thedata'];//if it was base64_encoded, don't forget to unencode it first

Tablo bir zaman damgası alanı varsa (otomatik-) periyodik incomplete_form_data tablo temizleyebilirsiniz. Sadece süresi dolmuş düşünün her şeyi silin.

The above code has not been exhaustively checked for syntax errors.