Codeigniter 批量更新主键联接表

Codeigniter 批量更新主键联接表,codeigniter,Codeigniter,我在使用codeigniter的批处理更新功能时遇到了问题,我正在使用一个连接表来连接我的产品和类别,因为我有一个多对多关系。我到处寻找答案,但仍然一无所获,所以我来到这里向更多的高级技术人员寻求帮助 我在“product_category”表中有两列,其中有“product_id”和“category_id”,因此我可以将一个产品链接到多个类别。我已经成功地执行了插入查询,该查询插入了所有id,但是更新不起作用。这是我的密码: 型号: function update_product_cat(

我在使用codeigniter的批处理更新功能时遇到了问题,我正在使用一个连接表来连接我的产品和类别,因为我有一个多对多关系。我到处寻找答案,但仍然一无所获,所以我来到这里向更多的高级技术人员寻求帮助

我在“product_category”表中有两列,其中有“product_id”和“category_id”,因此我可以将一个产品链接到多个类别。我已经成功地执行了插入查询,该查询插入了所有id,但是更新不起作用。这是我的密码:

型号:

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
SET
category\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,我更多地谈论的是换行和其他事情,请看,抱歉,这是我第一次,下次会更小心的谢谢你的提醒…不管怎样,你能用我的问题给我指出正确的方向吗?