Veritabanında belirli bir satır eklemek nasıl?

5 Cevap php

Bu sıraya göre şöyle Tamam, benim veritabanı:

id (birincil - auto_increment), kullanıcı adı (benzersiz), şifre, fname, mail

Kullanıcıların bir kullanıcı adı ve parola kayıt ve her şeyden önce, veritabanına ekler, böylece bende. Hiç bir kullanıcı adı aynı olmalı ve bu veritabanı bu otomatik artışlarla kimliği için veri eklemek yaptığında. Olabilir Bütün bunlar çalışıyor, ama şimdi kullanıcı kendi e-posta ve ilk adını değiştirebilirsiniz hangi bir hesap ayarları sayfasını yapılmış, ancak çalışmıyor. Ben kullanıcı bir sayfada bir form değişkenleri girmek var, ve o (güncelleştirme ilk isim için) ufname ve (update posta için) umail olarak ilk isim nakleder. Sonra veritabanını günceller sonraki sayfada bu kod var:

session_start();
if(!isset($_SESSION['userId'])) {
die("&nbsp;You are not signed in. Please <a href='login.php'>click here</a> to sign in.");
} else {
$changeTXT = $_SESSION['username'];
$changeTXT = strtolower($changeTXT);
$changeTXT = ucfirst($changeTXT);
echo "Account Settings: <font color='red'>" . $changeTXT . "</font><br /><br />";

$ufname = $_POST['ufname'];
$umail = $_POST['umail'];

mysql_connect("localhost", "root", "sp1151") or die(mysql_error());


mysql_select_db("usersys") or die(mysql_error());

mysql_query("INSERT INTO userdb (id, username, password, fname, mail) VALUES('','','','$ufname', '$umail') ");


echo $umail . "<br /><br />";
echo $ufname;

}

Oh, ben de kullanıcıların çok oturumlarda giriş var.

Ama nasıl kullanıcı veri tabanı üzerinde belirli bir satır içine girer ilk adını ve e-posta eklemek istiyorsunuz? Benim veritabanı adı userdb olduğunu.

5 Cevap

Varolan bir satır değil, bir INSERT değiştirmek için UPDATE sorgusu çalıştırmak gerekir.

$sql = "UPDATE userdb SET fname = '$ufname', mail = '$umail' WHERE id = $id";
mysql_query($sql);

Sen kullanımı ve yerine bir UPDATE açıklama yapmak gerekiyor INSERT:

UPDATE userdb SET fname = ?, mail = ? WHERE username = ?;

Bu bir yana ciddi bir SQL enjeksiyon attacs önlemek için sorgu parametreleri ile hazırlanmış deyimleri kullanmayı düşünmelisiniz.

: Bu UPDATE sorgu deneyin

Update 'tableName' set 'columnName' = 'newEntry' where 'rowID' = 'value'.

Bu deneyin:

mysql_query("UPDATE userdb SET fname = '$ufname', umail = '$umail' WHERE id = '$_SESSION['userId']' ");

Eğer SQL UPDATE sorgu kullanarak düşündünüz mü?