CodeIgniter activerecord, 마지막 삽입 ID를 검색 하시겠습니까?


153

CodeIgniter에서 새 레코드의 마지막 삽입 ID를 얻는 옵션이 있습니까?

$last_id = $this->db->insert('tablename',
    array('firstcolumn' => 'value',
    'secondcolumn' => 'value')
);

테이블이 id (자동 증가) firstcolumn 및 secondcolumn 필드로 구성된 것을 고려하십시오.

이런 식으로 다음 코드에서 삽입 ID를 사용할 수 있습니다.


4
나는이 질문에 여러 번 계속 왔습니다. 고마워요!
giripp

답변:


277

수치심 ...

나는 보았다 사용자 가이드 및 제 기능입니다$this->db->insert_id();

이것은 활성 레코드 삽입에서도 작동합니다 ...

편집 : 나는 링크를 업데이트


29
사용자 안내서는 이와 같은 것들에 가장 친한 친구입니다. 나는 2 년 이상 codeigniter를 사용해 왔으며 결코 알지 못했던 이와 같은 기능을 여전히 발견합니다.
Tom Schlick

8
당신의 삽입이 기능을 실행하기 전에 다른 개체를 삽입 할 수 쿼리 스케줄러와 같은 트랜잭션에서이 기능을 포장해야합니다
parker.sikand

3
링크가 죽었습니다, 업데이트 링크 : ellislab.com/codeigniter/user-guide/database/helpers.html
womd

insert_id ()를 사용해야하지만 ID를 얻기 위해 부여 된 insert_id ()가 insert ()에 속한다는 것을 알 수 없습니다! 내 말은, 다른 요청에서 다른 insert ()에 속한 ID를 검색 할 수 있습니까?
NM

37

마지막 삽입 ID는 활성 레코드에서이 방법을 사용하여 자동 증가 ID를 삽입 할 수 있음을 의미합니다.

$this->db->insert_id() 
// it can be return insert id it is 
// similar to the mysql_insert_id in core PHP

이 링크를 참조하면 더 많은 것을 찾을 수 있습니다.

쿼리 실행 정보


링크가 올바르지 않습니다. 링크를 수정하십시오. 새 링크 codeigniter.com/userguide3/database/helpers.html
Shaiful Islam

11

특정 테이블의 경우 $ this-> db-> insert_id ()를 사용할 수 없습니다. 마지막 삽입조차도 오래 전에 이런 식으로 가져올 수 있습니다. 잘못되었을 수 있습니다. 그러나 나를 위해 잘 작동

     $this->db->select_max('{primary key}');
     $result= $this->db->get('{table}')->row_array();
     echo $result['{primary key}'];

8

ID 및 쿼리 요청에 도움이되는 세부 정보 목록은 다음과 같습니다.

마지막으로 삽입 한 ID를 가져 오는 경우 : 테이블에서 마지막 레코드를 가져옵니다.

$this->db->insert_id(); 

SQL 쿼리를 가져 오는 중 모달 요청 후이를 추가

$this->db->last_query()


6

삽입 쿼리 후이 명령 $this->db->insert_id();을 사용 하여 마지막으로 삽입 된 ID를 반환하십시오.

예를 들면 다음과 같습니다.

$this->db->insert('Your_tablename', $your_data);

$last_id =  $this->db->insert_id();

echo $last_id // assume that the last id from the table is 1, after the insert query this value will be 2.



2
$this->db->insert_id()  

// 이것을 시도하십시오


이 중복 답변은 페이지에 새로운 가치를 부여하지 않습니다. 제거해야합니다.
mickmackusa

1
if($this->db->insert('Your_tablename', $your_data)) {
    return $this->db->insert_id();
}
return false 

0

codeigniter 3에서는 다음과 같이 할 수 있습니다.

if($this->db->insert("table_name",$table_data)) {
    $inserted_id = $this->db->insert_id();
    return $inserted_id;
}

https://codeigniter.com/user_guide/database/helpers.html 에서 Codeigniter 3에 대한 도움말을 얻을 수 있습니다.

Codeigniter 4에서 다음과 같이 마지막으로 삽입 된 id를 얻을 수 있습니다.

$builder = $db->table("your table name");
if($builder->insert($table_data)) {
    $inserted_id = $db->insertID();
    return $inserted_id;
}

https://codeigniter4.github.io/userguide/database/helpers.html 에서 Codeigniter 4에 대한 도움말을 얻을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.