当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何插入数据库中的特定行?》经验,为你挑选了2个好方法。

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

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

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

session_start();
if(!isset($_SESSION['userId'])) {
die(" You are not signed in. Please click here to sign in.");
} else {
$changeTXT = $_SESSION['username'];
$changeTXT = strtolower($changeTXT);
$changeTXT = ucfirst($changeTXT);
echo "Account Settings: " . $changeTXT . "

"; $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 . "

"; echo $ufname; }

哦,我也有用户登录会话.

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



1> David Snabel..:

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

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


请参数化以防止SQL注入.
确实; 使用mysql_real_escape_string或准备好的语句来防止SQL注入!

2> Simon Lehman..:

你需要使用和UPDATE声明而不是INSERT:

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

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

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有