Codeigniter 批量更新主键联接表
我在使用codeigniter的批处理更新功能时遇到了问题,我正在使用一个连接表来连接我的产品和类别,因为我有一个多对多关系。我到处寻找答案,但仍然一无所获,所以我来到这里向更多的高级技术人员寻求帮助 我在“product_category”表中有两列,其中有“product_id”和“category_id”,因此我可以将一个产品链接到多个类别。我已经成功地执行了插入查询,该查询插入了所有id,但是更新不起作用。这是我的密码: 型号:Codeigniter 批量更新主键联接表,codeigniter,Codeigniter,我在使用codeigniter的批处理更新功能时遇到了问题,我正在使用一个连接表来连接我的产品和类别,因为我有一个多对多关系。我到处寻找答案,但仍然一无所获,所以我来到这里向更多的高级技术人员寻求帮助 我在“product_category”表中有两列,其中有“product_id”和“category_id”,因此我可以将一个产品链接到多个类别。我已经成功地执行了插入查询,该查询插入了所有id,但是更新不起作用。这是我的密码: 型号: function update_product_cat(
function update_product_cat($product, $cat_id) {
$data = array();
foreach( $product as $index => $value )
{
$data[] = array(
'product_id' => $value ,
'category_id' => $cat_id[ $index ]
);
}
$this->db->update_batch('product_category', $data,
'product_id');
}
Array ( [0] => Array ( [product_id] => 327 [category_id] => 3 ) [1] => Array ( [product_id] => 327 [category_id] => 5 ) [2] => Array ( [product_id] => 327 [category_id] => 7 ))
数组:
function update_product_cat($product, $cat_id) {
$data = array();
foreach( $product as $index => $value )
{
$data[] = array(
'product_id' => $value ,
'category_id' => $cat_id[ $index ]
);
}
$this->db->update_batch('product_category', $data,
'product_id');
}
Array ( [0] => Array ( [product_id] => 327 [category_id] => 3 ) [1] => Array ( [product_id] => 327 [category_id] => 5 ) [2] => Array ( [product_id] => 327 [category_id] => 7 ))
我的错误代码:
错误号码:1062
键“PRIMARY”的重复条目“327-3”
更新product\u category
SETcategory\u id
=案例当product\u id
时为'327'然后当product\u id
时为'5'然后当product\u id
时为'7'其他product\u id
结束,其中product\u id
在('327'、'327'、'327'中)
如有任何帮助,将不胜感激:
谢谢我不是100%确定这是您的全部问题,但看起来product_category表将product_id设置为主键-您似乎正在尝试输入许多相同的product_id。如果是这种情况,您可能应该只使用常规更新而不是批处理,更不用说删除/替换主键。请花一些时间格式化代码。如果你寻求帮助,让人们愿意帮助,让他们变得容易。我确实尝试过,这是我第一次使用你的wysiwyg,说实话,这很痛苦,对不起,但我的代码被突出显示了,不是吗?它叫降价,不是wysiwyg,我更多地谈论的是换行和其他事情,请看,抱歉,这是我第一次,下次会更小心的谢谢你的提醒…不管怎样,你能用我的问题给我指出正确的方向吗?