MySQL의 마지막 PK값 획득.. mysql_insert_id() 와 last_insert_id() > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

PHP MySQL의 마지막 PK값 획득.. mysql_insert_id() 와 last_insert_id()

페이지 정보

댓글 0건 조회 4,691회 작성일 2016-10-06 22:14 ~ 2018-03-30 14:01

본문

DB에 데이터를 입력하면서 입력한 바로 그 값의 uid을 가져다가 써야 할 때가 있습니다.
2가지 방법이 있는데 mysql_insert_id() 과 last_insert_id() 입니다.

mysql_insert_id()은 PHP에서 처리해주는 명령문이고 last_insert_id()는 MySQL에서 처리해 주는 함수 입니다.
INSERT 명령으로 입력된 바로 그값의 PK(Primary Key)를 가져오는 명령을 수행합니다.


1. PHP 구문
$query = "INSERT INTO table (field1, field2) VALUES (value1, value2)";
$result = mysql_query($query);
if ($result)
$last_uid = mysql_insert_id();


2. MySQL 구문
$query = "INSERT INTO table (field1, field2) VALUES (value1, value2)";
$result = mysql_query($query);
if ($result)
$last_uid = mysql_query("last_insert_id()");


3. mysql_insert_id 
(PHP 3, PHP 4 , PHP 5) 
mysql_insert_id --  최근 INSERT 작업으로부터 생성된 identifier 값을 반환 

설명 
int mysql_insert_id ( [int link_identifier]) 

mysql_insert_id()는 link_identifier를 사용하면, INSERT 질의로 행(row)를 추가한 뒤 AUTO_INCREMENT로 생성된 테이블의 컬럼에 추가된 값을 얻을 수 있다. 
link_identifier를 지정하지 않으면, 마지막에 열려진 link를 사용한다. 

mysql_insert_id()는 이전 질의가 AUTO_INCREMENT값으로 생성되지 않으면, 0을 반환한다. 마지막으로 저장된 값이 필요하다면, 질의로 값을 추가한 직후 mysql_insert_id()를 사용하면 된다. 

참고: LAST_INSERT_ID()는 AUTO_INCREMENT 값으로 생성된 가장 최근 값이 보관되며, 질의할 동안에는 없어지지 않는다. 


4. mysqli_insert_id
(PHP 5, PHP 7)
mysqli::$insert_id -- mysqli_insert_id — Returns the auto generated id used in the latest query


5. 그누보드 5.1.3 이후 mysqli 함수 추가
그누보드5 / lib / common.lib.php
<?php
function sql_insert_id($link=null)
{
    global $g5;

    if(!$link)
        $link = $g5['connect_db'];

    if(function_exists('mysqli_insert_id') && G5_MYSQLI_USE)
        return mysqli_insert_id($link);
    else
        return mysql_insert_id($link);
}
?>


참고자료
http://jos39.tistory.com/191
http://unabated.tistory.com/entry/mysqlinsertid
https://dev.mysql.com/doc/refman/5.7/en/mysql-insert-id.html
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=36144
http://php.net/manual/en/function.mysql-insert-id.php
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 164건 1 페이지
기술자료 목록
번호 제목
164 PHP   113  2018-09-30 15:07 ~ 2018-09-30 15:53  
163 PHP   230  2018-09-14 05:59  
162 PHP   234  2018-08-29 03:21 ~ 2018-08-29 17:13  
161 PHP   232  2018-08-20 15:51  
160 PHP   243  2018-08-01 05:43 ~ 2018-08-01 05:45  
159 PHP   285  2018-07-26 20:20  
158 PHP   299  2018-07-21 00:10 ~ 2018-07-21 03:56  
157 PHP   1380  2018-02-22 02:26  
156 PHP   1452  2018-01-11 15:24 ~ 2018-01-11 16:24  
155 PHP   1347  2017-12-27 18:57  
154 PHP   1287  2017-11-13 01:52 ~ 2018-10-02 21:26  
153 PHP   1558  2017-11-01 16:34 ~ 2017-11-01 16:37  
152 PHP   1700  2017-10-30 18:45  
151 PHP   2071  2017-10-25 14:41 ~ 2017-10-25 22:44  
150 PHP   1322  2017-10-10 01:52  
149 PHP   1947  2017-09-04 07:41  
148 PHP   1650  2017-08-31 14:34 ~ 2018-05-17 16:24  
147 PHP   2191  2017-08-06 01:09  
146 PHP   5137  2017-08-05 00:29 ~ 2018-01-10 06:11  
145 PHP   3614  2017-08-03 23:59  
게시물 검색

회원로그인

계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
125
어제
2,909
최대
3,174
전체
4,319,273

회사명: 해피정닷컴   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 02-865-3528   주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
대표: 정창용   개인정보보호책임자: 정창용   통신판매업신고번호: 2014-서울구로-0074 [사업자등록정보확인]   건강기능식품영업신고번호 제2018-0080452호
Copyright 2001~2018 해피정닷컴. All Rights Reserved.