0

我有这样的模型:

 function data_input($data, $file_upload) {
    $this->db->set('ID_KEY', "LASTID_SEQ.NEXTVAL", FALSE); //false escape
    $this->db->insert('FIRST_TABLE', $data);
    $this->db->set('ID_KEY', "LASTID_SEQ.NEXTVAL -1", FALSE); //false escape
    $this->db->insert('SECOND_TABLE', $file_upload);
    return true;
}

我想将ID_KEY' 值发送到控制器并使用它来更新基于它的数据库ID_KEY

我的问题是,我可以ID_KEY在 FIRST_TABLE 和 SECOND_TABLE 中生成相同的值,但我无法将值发送到控制器。

或者,我可以使用另一种方法来获取"insert_id()"在 oracle 活动记录中插入的值。(或使用$this->db->query?)

4

1 回答 1

0

在 Codeigniter 中;调用 $this->db->insert_id() 返回最后插入数据的 ID。如果您打算返回两个查询的最后插入 id,我会这样做:

function data_input($data, $file_upload) {
$insert_id_collection = array();

// first table query
$this->db->set('ID_KEY', "LASTID_SEQ.NEXTVAL", FALSE); //false escape
$this->db->insert('FIRST_TABLE', $data);
$insert_id_collection['first_table_name'] = $this->db->insert_id();

// second table query
$this->db->set('ID_KEY', "LASTID_SEQ.NEXTVAL -1", FALSE); //false escape
$this->db->insert('SECOND_TABLE', $file_upload);
$insert_id_collection['second_table_name'] = $this->db->insert_id();

// this will contain to last insert ID;
return $insert_id_collection;

}

我之所以将数组的索引和索引放在表名中,以便您识别最后一个插入ID是什么;

希望对您有所帮助;快乐编码

于 2017-09-11T06:01:30.953 回答