gpt4 book ai didi

php - 检查数据库,如果数据不存在则插入

转载 作者:行者123 更新时间:2023-11-29 10:36:11 26 4
gpt4 key购买 nike

我有一个带有字段 user_id 和 role_id 的表“role”。我已经从 for 循环的另一个查询 154,516 中获取了新值。我想检查 154 是否在角色表 user_id 中,如果不退出则插入新字段或者如果存在则更新该字段。在我的例子中,更新 user_id '154' 的 role_id 并插入 '516' 的新行。

role //table
user_id role_id
210 1
125 2
310 1
154 1


foreach($heads as $head){
$first_count=$first_count+1;
$roleMappingObject = new role_mapping();
$roleMappingObject->user_id = $head->user_id;
$roleMappingObject->role_id = 1;
$roleMappingObject->save (); //this will insert the new row for both 154 and 516 but I want to update '154'
}

最佳答案

在您的情况下,您的 role_id 似乎不是外键,如果是这种情况,您可以使用 Eloquent 函数 firstOrCreate/ firstOrNew

firstOrCreate 将搜索具有给定数据的实例并返回该实例或保存该实例。

firstOrNew 将查找并返回或创建实例,但不会将其保存在数据库中,因为您必须通过调用 save() 方法来完成此操作。

但是如果你的 role_id 是外键,即其他表的键 id,那么你应该更喜欢按照 laravel 文档 many to many relationship 中定义的方式使用它。将您的 role 表更改为 role_user 并在用户和角色表之间创建关系。这样您就可以使用附加/分离方法。

关于php - 检查数据库,如果数据不存在则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46387944/

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