gpt4 book ai didi

php - 如何判断保存操作是插入还是更新?

转载 作者:行者123 更新时间:2023-11-29 11:53:09 25 4
gpt4 key购买 nike

我在用户个人资料页面中遇到问题。

我有一个名为“个人资料”的表(id、uid、名字、姓氏、州)当用户登录并编辑个人资料时,他输入了自己的信息然后同意。

所以我的脚本必须将他的信息添加到表(个人资料)中,因为它们是空的!但如果个人资料已经完成,这意味着他寻求更新他的个人资料而不是添加。我试图完成这一页,但这让我感觉很糟糕。

$profile = sbr_get_user_profile_by_id($uid);
if($profile == NULL)
{
$result = sbr_add_profiles($uid,trim($_POST['firstname']),trim($_POST['lastname']),trim($_POST['state']));
sbr_db_close();
if($result){
$_SESSION['success'] = 'success add';
header('location: modifyProfile.php?id='.$uid);
die();
}
else
die('no add');
}

$result = sbr_update_profile_users($uid,trim($_POST['firstname']),trim($_POST['lastname']),trim($_POST['state'])));
sbr_db_close();

我正在寻找更好的主意,因为我不喜欢这种方式。

最佳答案

更改您的 MySQL 查询。而不是这个:

UPDATE table......

使用这个:

INSERT INTO table (id,uid,firstname,lastname,state)
VALUES($id,$uid,$firstname,$lastname,$state)
ON DUPLICATE KEY UPDATE
id=VALUES(id), uid=VALUES(uid), firstname=VALUES(firstname), lastname=VALUES(lastname),state=VALUES(state)

您必须在 mysql 表中的名字、姓氏上设置组合唯一键才能获得上述查询的效果。

通过上面的查询,将插入新的名字和姓氏,如果发现相同的名字和姓氏,则将更新行。但由于可能有多个人具有相同的名字和姓氏,因此您还必须在其他列上设置唯一键,例如名字、姓氏、电话列上的唯一键。

我认为,就您而言,如果每个用户的值不同,您应该在 uid 列上设置唯一键。

关于php - 如何判断保存操作是插入还是更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com