如何在单个查询中将两个不同的数组值插入表中

时间:2012-07-03 05:58:49

标签: php mysql

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

表格式

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

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

3 个答案:

答案 0 :(得分: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列是自动递增的列。

答案 1 :(得分:0)

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

Insert into myTable values ('field1-var1','field2-var2'), ('field1-var2','field2-var2') ..

答案 2 :(得分: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));