如何插入数据库中的特定行?

时间:2009-03-27 14:10:37

标签: php mysql user-input

好的,我的数据库按此顺序如下:

id(主要 - auto_increment),用户名(唯一),密码,fname,邮件

我拥有它,以便用户注册用户名和密码,并将其添加到数据库中,首先。没有用户名可以是相同的,当它确实将数据添加到数据库时,它会自动增加ID。所有这些都有效,但现在我创建了一个帐户设置页面,用户可以在其中更改其电子邮件和名字,但它无法正常工作。我让用户在一个页面上的表单中输入变量,并将其名字发布为ufname(用于更新名字)和umail(用于更新邮件)。然后在更新数据库的下一页上我有这段代码:

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;

}

哦,我也让用户登录会话。

但是如何插入用户输入数据库中特定行的名字和电子邮件?我的数据库名是userdb。

5 个答案:

答案 0 :(得分:16)

您需要运行UPDATE查询来更改现有行,而不是INSERT。

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

答案 1 :(得分:8)

您需要使用UPDATE语句而不是INSERT

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

除此之外,您应该认真考虑使用带有查询参数的预准备语句来防止SQL注入attac。

答案 2 :(得分:1)

试试这个UPDATE查询:

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

答案 3 :(得分:0)

您是否考虑过使用SQL UPDATE查询?

答案 4 :(得分:0)

试试这个:

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