PHP将数据更新为sql


PHP Update data to sql

为了将一些数据插入mysql,我使用:

$sql = "INSERT INTO MyGuests (fullname, email) VALUES ('John Doe', 'john@example.com')";

但在此之前,我希望,如果全名John Doe已经在MyGuests表的查询中使用,那么它将随电子邮件更新。如果没有,那么数据将像上面一样正常插入。我怎么能那样做?非常感谢

只需使用mysql-num行检查行即可。使用下方的代码

$query = mysql_query("SELECT * FROM MyGuests WHERE fullname='John Doe'");
if(mysql_num_rows($query)==0){
mysql_query("INSERT INTO MyGuests (fullname, email) VALUES ('John Doe', 'john@example.com')");
}
else{
mysql_query("UPDATE MyGuests SET email='youremailname@name.com' WHERE fullname='John Doe'");
}

如果您使用的是mysqli_*函数,那么将mysql替换为mysqli。我没有使用prepared语句,您必须使用它们来停止sql注入。我建议您使用PDO或mysqli准备的语句来停止sql注入。希望tis能帮助您

您必须首先查询MySQL以检查是否已经有任何结果,如果已经有结果,则运行UPDATE查询而不是INSERT。

您可以这样使用on duplicate key update

INSERT INTO MyGuests (fullname, email) VALUES ('John Doe', 'john@example.com') ON DUPLICATE KEY UPDATE email='john@example.com';

要使其按预期工作,请确保fullname是主键。