Codeigniter и Oracle получают last_id запроса вставки

У меня есть модель, как это:

 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()" вставки в оракул активной записи. (или используя $this->db->query?)

0

Решение

В кодеигниторе; Вызов $ this-> db-> insert_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;

}

Причина, по которой я поместил индекс индекса в имя таблицы, чтобы вы могли определить, какой идентификатор последней вставки это;

Надеется, что это поможет вам; Удачного кодирования

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]