Bir php formu kullanarak mysql veritabanını güncellemek için nasıl iyi bir eğitim için mi arıyorsunuz?
Verileri güncelleniyor oldukça basit olabilir. En başlayanlar için, bir form ile başlayalım:
<form method="post" action="submit.php">
<input type="text" name="id" value="12" />
<input type="text" name="value" value="Jonathan" />
<input type="submit" />
</form>
Bu form, biz bunu halledebiliriz bizim submit.php komut dosyası üzerinden veri göndermek ve bizim veritabanına geçecek. Bizim form yöntemi olduğu "post," Bizim tüm değerler PHP POST süper dizi (dosya yükleyicileri kullanıyorsanız bu durum böyle değil) yoluyla gönderilecektir. Yani bizim submit.php sayfası içinde, biz bu gibi kimlik ve değer değerlerini yazdırabilirsiniz:
print $_POST["id"]; // the name of the HTML element is the key
print $_POST["value"]; // again, note that we use the name as the key
Doğrudan sorguları içine kullanıcı gönderilen değerleri geçen konusunda dikkatli olmak isteyeceksiniz, bu yüzden gibi bir işlevi kullanarak verileri temizlemek için güzel mysql_real_escape_string():
$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );
Yapmamız isteyeceğiniz sonraki şey, bir sorguda bu yer almaktadır:
$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";
Bu iyi bir zaman ben canlı bir ortamda bu örnek kodu kullanmak için teşvik kalmamasıdır devlet değildir. Bunları önlemek için nasıl sql-enjeksiyonları bakmak istiyorum, ve edeceğiz. Burada sağlayan kulüpler kod sadece bir örnektir. Bizim değerler girildikten sonra, aslında koştu olacak sorgu şöyle:
UPDATE mytable SET value = 'Jonathan' WHERE id = 12
Şimdi, bu çalıştırmak için, bir veri tabanına bağlı olması gerekmektedir.
$host = "localhost";
$user = "root";
$pass = "";
$database = "myDatabase";
$conn = mysql_connect($host, $user, $pass) or die( mysql_error() );
mysql_select_db($database) or die( mysql_error() );
Burada yaptığımız tüm diziler bizim mysql kullanıcı hesap kimlik bilgilerini depolamak ve bir bağlantı fonksiyonu içine geçiyor. Bu kod oldukça kendini açıklayıcı olabilir, ama hiç belli olmadığını bana bildirmeniz gerekir.
O var sonra, size sorgu çalıştırmak için hazırsınız. Biz denilen bir dizi içinde saklanan unutmayın $sql:
$result = mysql_query( $sql ) or die( mysql_error() );
İşte bu. Bunu yaptı! Veri, hiçbir şey yanlış gitti varsayarak, şimdi veritabanında güncellenir. Bu komut dosyası aracılığıyla geri kullanıcıya sunulan bilgiyi artırıcı birçok yolu vardır. O (birisi kendi sorgularını aşılamaya çalışan) kabul edilebilir veri değil eğer geri tükürmek isteyeceksiniz - Ayrıca fazlalaştı bile komut dosyası çalıştırmak için izin önce verilerinizi sterilize etmek isteyeceksiniz olmasıdır.
Daha fazla güzellikler için MySQL Functions in the PHP Documentation check out, ve daha özel bir sorunuz olduğunda buraya dönmek için emin olun!