Batch_update主键连接表

时间:2012-08-23 13:10:58

标签: codeigniter

我遇到了使用codeigniter的批量更新功能的问题,我正在使用我的产品和类别的连接表,因为我有很多关系。我已经搜索了高低的答案,但仍然没有,所以我来这里向更高级的技术人员寻求帮助。

我在表“product_category”中有两列,其中包含“product_id”& “category_id”所以我可以将1个产品链接到许多类别。我已设法执行插入查询,插入所有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');


                                }

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' 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 )) 任何帮助将不胜感激:

感谢

1 个答案:

答案 0 :(得分:0)

我不是100%确定这是你的整个问题,但看起来product_category表将product_id设置为主键 - 看起来你正试图输入许多相同的product_id。如果是这种情况,您可能只是使用常规更新而不是批处理,更不用说删除/替换主键。

相关问题