0

我有一个存储用户详细信息的数据库,如果他们的名字匹配,我希望用户能够更新他们的详细信息。

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

$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”的用户想要更新他的电子邮件,他会去表格,输入他的名字,然后他输入的任何其他内容都会更新他的行而不是创建一个新行。

我已经看到了重复键选项,但是在表单上有复选框,所以我担心如果我使用它,由于复选框的原因,大多数表单将至少有一个重复键,它会更新错误的行。

您能否具体说明必须复制哪一列才能更新该行?

4

1 回答 1

0

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

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

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

希望这会奏效

于 2018-05-02T15:57:49.780 回答