如果名称已经在数据库

时间:2018-05-02 15:43:24

标签: php mysql mysqli

我有一个存储用户详细信息的数据库,我希望用户能够在其名称匹配时更新其详细信息。

目前我向数据库提交详细信息,如下所示:

$sql="INSERT INTO gdpr_info (name, email, phone, comments, phoneout, emailout, postout, phonein, emailin, postin) VALUES ('".$yourName."','".$yourEmail."', '".$yourPhone."', '".$comments."','".$phoneout."','".$emailout."','".$postout."','".$phonein."','".$emailin."','".$postin."')";

如果名称匹配,我将如何更新用户行,例如,如果用户名为' Robbie Fowler'想要更新他的电子邮件,他会去表格,输入他的名字以及他在更新行之后放入的任何其他内容而不是创建新行。

我已经看过重复的密钥选项,但是在表单上有复选框,所以我担心如果我使用大多数表单将至少有一个重复的密钥,因为复选框和它将更新错误的行。

您能具体说明必须复制哪一列来更新行吗?

1 个答案:

答案 0 :(得分:0)

如果他是用户想要更新他的详细信息,我猜你使用mysql更新查询来更新这将如何做        首先从db中获取用户。用户可以是想要更新的登录用户       然后像这样更新电子邮件列  UPDATE table-name SET column ='.$_POST['newvalue'].' WHERE namecolumn ='.$loggedINuser.';

或者,如果您想要更改bame,就像您在输入名称和新电子邮件的问题中所说的那样  UPDATE table-name SET column ='..$_POST['newvalue'].' WHERE namecolumn ='.$_POST['name'].';

而且我猜一个表中只能有一个主要字段,所以只需查看您可以拥有多个唯一列但只有一个主列(建议使用id列)

希望这会起作用