我有一个存储用户详细信息的数据库,我希望用户能够更新他们的详细信息,如果他们的名字匹配。
目前我将详细信息提交给数据库,如下所示:
$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‘的用户想要更新他的电子邮件,他会转到表单,输入他的姓名,之后他输入的任何其他内容都会更新他的行,而不是创建一个新行。
我已经看到了复制键选项,但是在表单上有复选框,所以我担心如果我使用复选框,大多数表单将至少有一个复制键,并且它会更新错误的行。
您能否指定必须复制哪一列才能更新行?
发布于 2018-05-02 23:57:50
如果他是想要更新他的详细信息的用户,我想你可以使用mysql更新查询来更新,这将首先从数据库中获取用户。用户可以是想要更新电子邮件列的登录用户,如下所示的UPDATE table-name SET column ='.$_POST['newvalue'].' WHERE namecolumn ='.$loggedINuser.';
或者,如果您想要像您在问题中所说的那样,使用名称输入和新电子邮件来更改bame,则单击UPDATE table-name SET column ='..$_POST['newvalue'].' WHERE namecolumn ='.$_POST['name'].';
另外,我猜一个表中只能有一个主字段,所以只需查找您可以有多个唯一列,但只能有一个主列(建议使用id列)
希望这能行得通
https://stackoverflow.com/questions/50138576
复制相似问题