收到错误 - '重复输入'9'用于关键'accountID'ERROR 1062。
我正在尝试使用ON DUPLICATE KEY UPDATE来更新已插入数据库的任何字段。
关于计划的背景:
我有三张桌子。帐户,地址和个人资料。由于对人和地址的外键约束,我不能使用简单的更新查询,因此我正在使用它。我不确定我是否错误地使用它,或者我不理解它的逻辑。如果有人能伸出一手会很棒的话。 我认为问题在于插入表单数据的方法。我在下面添加了说明。
在我的函数中,我以相同的形式更新两个表(地址和人)。因为人员引用地址ID,所以在插入人员数据之前需要插入地址数据。根据我的代码,问题在于人员数据插入(w / on duplicate ...),虽然地址插入(重复...)有效,但它不更新行,只是添加了一行 - 这仍然是错误的。我试图通过下面的第二个插入语句来理解这个问题。
注意:假设所有数组字段($ addressData,$ profileData)都是正确的,它们在没有ON DUPLICATE KEY UPDATE函数的情况下工作。
谢谢!
$this->db->insert('address', $addressData).'ON DUPLICATE KEY UPDATE country=country+1, city=city+1, streetName=streetName+1, postcode=postcode+1, buldingNumber= buldingNumber+1';
$this->db->insert('person', $profileData).'ON DUPLICATE KEY UPDATE firstname=firstname+1, lastname=lastname+1,addressID='.$addressID.'+1, dob=dob+1, religion=religion+1, locationFlexibility=locationFlexibility+1';