我正在尝试向表中插入字段并获取id(假设表的PRIMARY KEY是AUTO INCREMENT)。我需要将该记录的自动增量ID插入第二个表中。我显然可以返回$ this-> db-> insert_id(),但之后如何访问Controller中的值?
我尝试在变量中定义它并在控制器中进行访问,但它不起作用。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: insert_id
Filename: controllers/POS.php
Line Number: 87
型号:
function populate_pos_purchase_table($posPurchase) {
$this->db->trans_begin();
$this->db->insert('pos_purchase', $posPurchase);
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
return false;
}
else {
$this->db->trans_commit();
$insert_id = $this->db->insert_id();
return $insert_id;
return true;
}
}
控制器:
function update_payment_details() {
$newPayment = array (
'pos_id' => $insert_id, // Line Number: 87
'payment_description' => 'Point of Sales',
'payment_method' => $this->input->post('payment_method'),
'payment_date' => $this->input->post('payment_date'),
'paid_amount' => $this->input->post('total'),
'due_amount' => 0
);
$this->pos_model->populate_new_payment_table($newPayment);
$this->index();
}
答案 0 :(得分:1)
只需保存第一个插入的id - 然后在第二个插入中使用它吗?
function update_payment_details() {
$insert_id = populate_pos_purchase_table($posPurchase);
$newPayment = array (
'pos_id' => $insert_id, // Line Number: 87
'payment_description' => 'Point of Sales',
'payment_method' => $this->input->post('payment_method'),
'payment_date' => $this->input->post('payment_date'),
'paid_amount' => $this->input->post('total'),
'due_amount' => 0
);
$this->pos_model->populate_new_payment_table($newPayment);
$this->index();
}