在MySql中插入时将用户名更改为其ID

时间:2014-12-09 19:29:28

标签: php mysql

我是PHP和MySql的新手, 目前,我很难理解如果它是来自其父表的ID的用户名,我将如何更改外键输入。

目前我有这个:

$sql ="INSERT INTO Car(Name,UserID,TypeID) VALUES ('$_POST[Name]','$_POST[Username]','$_POST[Type]')";

只是为了澄清来自另一个表的用户名和用户ID,但我希望用户名能够与其ID匹配,而不是将其插入到子表中

1 个答案:

答案 0 :(得分:2)

首先,我必须说您的查询容易受到SQL注入攻击。这是因为您基本上通过在查询中设置post变量来信任用户的输入。您可以在下面看到如何防止注射。

How can I prevent SQL injection in PHP?

我不确定您为什么要用其用户名覆盖用户的ID。我建议有一个用户表,每个用户都有一行,然后该表的ID将成为用户的ID。

修改

您不必担心用户会记住他们的用户ID。您可以使用从前端提交的用户名来查找后端处理的用户ID:

$result = SELECT userID FROM users WHERE username = $username

然后,您可以使用结果中的userID执行用户操作,然后使用他们的名字或用户名向用户报告。

修改

创建用户后,我们不需要在birds表中实现用户名的使用(因为我们只是创建用户)。

用户登录后(通过查询用户表)验证用户名和密码是否匹配,您可以创建一个存储用户名的$user全局变量。当用户转到表单提交他们喜欢的鸟时,您可以使用包含用户名的全局$user变量插入bird表。

这是你要做的事情:

$result = "INSERT INTO birds (column1,column2,column3,...) VALUES (value1,value2,value3,...)";

请记住,桌子上的id会自行增加。

对于MySQL表,您需要某种唯一标识符。为了鸟类表的目的,你可以有一个简单的id,只要每次添加一只鸟就自动递增。

希望这有帮助。