批量订单
id | total | date
1 810029 19/11/15
Purchorder
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
我已经试了一个星期了。我有这两个表,batchporder和purchord在batchporder表中,我需要插入一行,并获得传递给purchord插入的主id。在purchord中,我需要插入多行,因此我使用了insert\u batch。
控制器
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'));
}
}
}
模型
//-- order function
public function create_multiple_table($batchporder,$purchord){
$this->db->insert('batchporder',$batchporder);
$batchid = $this->db->insert_id();
$purchord['batchid'] = $batchid;
$this->db->insert_batch('purchord',$purchord);
return $insert_id = $this->db->insert_id();
}
错误1
遇到PHP错误严重性:警告
消息:array_keys()要求参数1为数组,字符串为给定值
文件名:数据库/DB\u查询\u生成器。php
行号: 1567
回溯:
文件:C:\xampp\htdocs\admin\application\models\Common\u model。php行:23函数:插入批处理
文件: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\u驱动程序。php
电话号码:691
这是因为您已经将$购买
作为多个数组传递,并将$购买['batchid']=$batchid;
作为您的Model
中的单个数组值,批处理ID应设置如下:
$this->db->insert('batchporder',$batchporder);
$batchid = $this->db->insert_id();
$purchord = array_map(function($arr) use($batchid){
return $arr + ['batchid' => $batchid];
}, $purchord);
问题内容: 这是场景: 我正在尝试在插入表时创建引用记录。但是我得到的是null,因为它是自动从序列中生成的。我也尝试了触发器插入,但是结果是一样的。有什么办法解决吗? 问题答案: 避免使用规则,因为它们会再次咬住您。 在每行运行的表a上使用after触发器。它看起来应该像这样(未经测试):
我试图在从一个表创建一个值后将其插入另一个表我有两个数据库“mem”和“location” 我想从mem表中添加主键id,并将其插入到位置表中的user_id列中。 我有一个sql查询在我的注册表单页面,自动递增'id'在mem表中,但似乎没有添加相同的值到位置表中的user_id, 有人能帮忙吗!
问题内容: 我有这段代码可以从“ jobseeker”表中选择所有字段,并可以通过将userType设置为“ admin”来更新“ user”表,其中userID =$ userID(此userID是我用户中的一个用户数据库)。然后,该语句应将这些值从“ jobseeker”表插入到“ admin”表中,然后从“ jobseeker表”中删除该用户。sql表很好,我的语句正在将userType更改
我有两个具有相同列的表,这些表没有唯一的列。假设列为Col1、Col2、Col3和Col4。表是T1和T2。 我要做的是插入从T2到T1的所有行,其中Col1 比如Col1=“APPLE”和Col2=“2019”。如果一行在T2中包含Col1=“APPLE”和Col2=2019,我不想将其插入T1,而如果一行包含Col1=“APPLE”和Col2=2020,我想将其插入T1。 我正在努力找到最简单
表1有col1、col2、col3、col4、col5列 表2有col1、col3、col5列 我想将表2中的行插入表1 但是col2,col4在插入表2后应该是NULL数据类型 我怎么能在蜂巢,目前我正在使用Hortonworks 3.1版本
问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。