0

我想在单个查询中将两个数组的值插入到表中。有没有可能做这样的事情。

表格格式

id | product_id | category_id | blog_id | updated_by | created_date 

类别_id

Array
(
    [0] => 4
    [1] => 15
    [2] => 18
)

Product_id

Array
(
    [0] => 2260 
    [1] => 1401 
)

Blog id = mysql_insert_id();

结果

id | product_id | category_id | blog_id | updated_by  
 1      2260        4               15      xyz         
 2      1401        15              15      xyz   
 3      null        18              15      xyz

对我的任何建议也可以为此改进更好的插入查询。

4

3 回答 3

2
INSERT INTO `Table_Name` (`product_id`, `category_id`, `blog_id`, `updated_by`) VALUES (2260, 4, 15, 'xyz'), (1401, 15, 15, 'xyz'), (, 18, 15, 'xyz');

我假设该id列是自动递增的。

于 2012-07-03T06:05:28.100 回答
0

您可以在现在使用的同一查询中一次性插入多行。只需添加一个逗号,然后输入更多值:

Insert into myTable values ('field1-var1','field2-var2'), ('field1-var2','field2-var2') ..
于 2012-07-03T06:05:48.200 回答
0
$combain = array_merge($cat , $proid);   
for($i = 0; $i <count($combain); $i++ )
            {
                if(isset($proid[$i])) {
                    $product_id = $proid[$i];
                }
                else{
                    $product_id = "''";
                }            
                if(isset($cat[$i])){
                    $category_id = $cat[$i];
                }
                else{
                    $category_id = "''";
                }   
                if(!empty($cat[$i]) || !empty($proid[$i])) {

                    @$values[] ="('',". $blogid.",".$category_id.",".$product_id.","."'".$updated_by."'".",now())";
                }
            }        
            $query = $this->db->query("insert into blog_details (id , blog_id , cat_id, pro_id, updated_by , created_date) values" . implode(',', $values));
于 2012-07-03T10:17:57.243 回答