Php 如何插入到两个表中;一个将插入一行,另一个将插入多行,这两个表有一列具有相同的值

Php 如何插入到两个表中;一个将插入一行,另一个将插入多行,这两个表有一列具有相同的值,php,mysql,codeigniter,Php,Mysql,Codeigniter,批量订单 id | total | date 1 810029 19/11/15 id | itemnum | code | rev | desc | qty | uprice | amount | batchid 1 4 D2252 A Cover 324 2321 752004 1 2 2 D522S S Toolbox 25 2321 58025 1

批量订单

id | total | date

1   810029  19/11/15
id | itemnum | code | rev |  desc  | qty | uprice | amount | batchid
 1       4     D2252   A    Cover    324   2321     752004      1
 2       2     D522S   S   Toolbox   25    2321     58025       1
     public function post_multiple_table(){
     $this->load->model('Common_model', 'com_model', TRUE);
     if ($_POST) {

     $batchporder_input_data = array();

     $batchporder_input_data['total'] = $this->input->post('date');
     $batchporder_input_data['total'] = $this->input->post('total');
     $batchporder_input_data['ref'] = $this->input->post('ref');
     $batchporder_input_data['freight'] = $this->input->post('freight');
     $batchporder_input_data['pload'] = $this->input->post('pload');
     $batchporder_input_data['pdest'] = $this->input->post('pdest');
     $batchporder_input_data['ddate'] = $this->input->post('ddate');
     $batchporder_input_data['term'] = $this->input->post('term');

     $itemnum = $this->input->post('itemnum');
     $code = $this->input->post('code');
     $rev = $this->input->post('rev');
     $desc = $this->input->post('desc');
     $qty = $this->input->post('qty');
     $uprice = $this->input->post('uprice');
     $amount = $this->input->post('amount');

     for ($i=0; $i < sizeof($itemnum); $i++){
     $purchord_input_data[$i] = array('itemnum' => $itemnum[$i], 
                  'code' => $code[$i],
                  'rev' => $rev[$i],
                  'desc' => $desc[$i],
                  'qty' => $qty[$i],
                  'uprice' => $uprice[$i],
                  'amount' => $amount[$i]
                  );
     }

    // echo '<pre>';
    // var_dump($purchord_input_data);
    // var_dump($batchporder_input_data);
    // echo '</pre>';

    $checking_insert = $this->com_model->create_multiple_table($batchporder_input_data, $purchord_input_data);
    if($checking_insert){
        redirect(base_url('admin/payment/all_payments'));
    }   
     else{
        redirect(base_url('admin/dashboard'));
     }

    }

 }
Purchorder

id | total | date

1   810029  19/11/15
id | itemnum | code | rev |  desc  | qty | uprice | amount | batchid
 1       4     D2252   A    Cover    324   2321     752004      1
 2       2     D522S   S   Toolbox   25    2321     58025       1
     public function post_multiple_table(){
     $this->load->model('Common_model', 'com_model', TRUE);
     if ($_POST) {

     $batchporder_input_data = array();

     $batchporder_input_data['total'] = $this->input->post('date');
     $batchporder_input_data['total'] = $this->input->post('total');
     $batchporder_input_data['ref'] = $this->input->post('ref');
     $batchporder_input_data['freight'] = $this->input->post('freight');
     $batchporder_input_data['pload'] = $this->input->post('pload');
     $batchporder_input_data['pdest'] = $this->input->post('pdest');
     $batchporder_input_data['ddate'] = $this->input->post('ddate');
     $batchporder_input_data['term'] = $this->input->post('term');

     $itemnum = $this->input->post('itemnum');
     $code = $this->input->post('code');
     $rev = $this->input->post('rev');
     $desc = $this->input->post('desc');
     $qty = $this->input->post('qty');
     $uprice = $this->input->post('uprice');
     $amount = $this->input->post('amount');

     for ($i=0; $i < sizeof($itemnum); $i++){
     $purchord_input_data[$i] = array('itemnum' => $itemnum[$i], 
                  'code' => $code[$i],
                  'rev' => $rev[$i],
                  'desc' => $desc[$i],
                  'qty' => $qty[$i],
                  'uprice' => $uprice[$i],
                  'amount' => $amount[$i]
                  );
     }

    // echo '<pre>';
    // var_dump($purchord_input_data);
    // var_dump($batchporder_input_data);
    // echo '</pre>';

    $checking_insert = $this->com_model->create_multiple_table($batchporder_input_data, $purchord_input_data);
    if($checking_insert){
        redirect(base_url('admin/payment/all_payments'));
    }   
     else{
        redirect(base_url('admin/dashboard'));
     }

    }

 }
我已经试了一个星期了。 我有这两张桌子,batchporderpurchord 在batchporder表中,我需要插入一行并获得 要传递给purchord插件的主id。在purchord中,我需要插入多行 所以我就用了一批

控制器

id | total | date

1   810029  19/11/15
id | itemnum | code | rev |  desc  | qty | uprice | amount | batchid
 1       4     D2252   A    Cover    324   2321     752004      1
 2       2     D522S   S   Toolbox   25    2321     58025       1
     public function post_multiple_table(){
     $this->load->model('Common_model', 'com_model', TRUE);
     if ($_POST) {

     $batchporder_input_data = array();

     $batchporder_input_data['total'] = $this->input->post('date');
     $batchporder_input_data['total'] = $this->input->post('total');
     $batchporder_input_data['ref'] = $this->input->post('ref');
     $batchporder_input_data['freight'] = $this->input->post('freight');
     $batchporder_input_data['pload'] = $this->input->post('pload');
     $batchporder_input_data['pdest'] = $this->input->post('pdest');
     $batchporder_input_data['ddate'] = $this->input->post('ddate');
     $batchporder_input_data['term'] = $this->input->post('term');

     $itemnum = $this->input->post('itemnum');
     $code = $this->input->post('code');
     $rev = $this->input->post('rev');
     $desc = $this->input->post('desc');
     $qty = $this->input->post('qty');
     $uprice = $this->input->post('uprice');
     $amount = $this->input->post('amount');

     for ($i=0; $i < sizeof($itemnum); $i++){
     $purchord_input_data[$i] = array('itemnum' => $itemnum[$i], 
                  'code' => $code[$i],
                  'rev' => $rev[$i],
                  'desc' => $desc[$i],
                  'qty' => $qty[$i],
                  'uprice' => $uprice[$i],
                  'amount' => $amount[$i]
                  );
     }

    // echo '<pre>';
    // var_dump($purchord_input_data);
    // var_dump($batchporder_input_data);
    // echo '</pre>';

    $checking_insert = $this->com_model->create_multiple_table($batchporder_input_data, $purchord_input_data);
    if($checking_insert){
        redirect(base_url('admin/payment/all_payments'));
    }   
     else{
        redirect(base_url('admin/dashboard'));
     }

    }

 }

错误1

遇到一个PHP错误 严重性:警告

消息:array_keys()要求参数1为数组,字符串为给定值

文件名:database/DB\u query\u builder.php

电话号码:1567

回溯:

文件:C:\xampp\htdocs\admin\application\models\Common\u model.php 第23行 功能:插入\u批

文件:C:\xampp\htdocs\admin\application\controllers\admin\Payment.php 电话号码:93 功能:创建多个表格

文件:C:\xampp\htdocs\admin\index.php 电话号码:315 功能:需要一次

错误2

错误号码:21S01/1136

列计数与第3行的值计数不匹配

插入
purchord
amount
code
desc
itemnum
quaty
rev
uprice
)值('752004','D2252','cover','4','324','a','2321'),('58025','D522S','toolbox','2','25','s','2321'),()

文件名:C:/xampp/htdocs/admin/system/database/DB_driver.php


行号:691

这是因为您已将
$purchord
作为多数组传递,并设置
$purchord['batchid']=$batchid
作为
模型中的单个数组值,批次id应设置如下: