PHP MySQLi 함수를 사용하여 마지막으로 삽입된 ID 가져오기
이 튜토리얼은 PHP mysqli()
함수를 간략하게 소개하고 이를 사용하여 MySQL 데이터베이스에서 마지막으로 삽입된 id
를 가져오는 방법을 보여줍니다.
PHP mysqli()
함수
이것은 mysqli
라는 MySQL
드라이버 확장 버전으로, 종종 MySQL 데이터베이스 또는 스키마와 연결하기 위해 PHP 서버 측 스크립팅과 함께 사용됩니다.
시작하려면 먼저 MySQL 데이터베이스에 연결해야 합니다. connect()
또는 mysqli_connect()
함수는 MySQL 서버에 대한 연결을 여는 데 사용됩니다.
함수를 사용하기 전에 MySQL 서버에 대한 매개변수가 포함된 mysqli()
객체를 생성해야 합니다.
<?php
$mysqli = new mysqli(
"host_name",
"username",
"password",
"database_name",
"port",
"socket"
);
//Checking connection
if ($mysqli -> connect_errno){
echo "Something went wrong. Failed to connect with MySQL database".
$mysqli -> connection_error;
exit();
}
else{
echo "Connected";
}
?>
위의 코드는 연결이 설정되지 않은 경우 사용자에게 알립니다. 그렇지 않으면 브라우저 화면에 연결됨
이 인쇄됩니다.
매개변수 설명
모수 | 설명 |
---|---|
host_name |
호스트 이름(예: localhost ) 또는 IP 주소를 지정합니다. |
username |
MySQL 데이터베이스의 사용자 이름 을 지정하십시오. |
password |
MySQL 데이터베이스의 비밀번호 를 지정하십시오. |
database_name |
MySQL 데이터베이스에서 연결하려는 데이터베이스 또는 스키마의 이름을 제공하십시오. |
port |
MySQL 서버에 연결하는 데 사용됩니다. |
socket |
소켓 또는 명명된 파이프를 지정합니다. |
PHP mysqli()
함수를 사용하여 마지막으로 삽입된 ID
가져오기
이 작업을 수행하려면 AUTO_INCREMENT
필드가 있는 테이블을 생성해야 합니다. 이 필드는 마지막으로 삽입된 id
레코드를 반환합니다.
AUTO_INCREMENT
가 있는 이유는 무엇입니까? 새 레코드가 테이블에 삽입될 때마다 자동 증분
을 통해 고유 번호가 자동으로 생성됩니다.
새 레코드가 삽입될 때마다 자동으로 생성하려는 기본 키
필드인 경우가 많습니다. AUTO_INCREMENT
열을 생성하는 방법을 알아보려면 다음 코드를 참조하십시오.
CREATE TABLE table_name(
column_name1 INT AUTO_INCREMENT PRIMARY KEY,
column_name2 VARCHAR(100)
);
INT
열은 정수 값을 저장하고 AUTO_INCREMENT
는 새 레코드가 삽입될 때마다 자동으로 열 값을 증가시킵니다. 마지막으로 PRIMARY KEY
는 제약 조건을 설정하여 열에 고유한 값만 허용합니다.
두 번째 열은 문자열 값을 허용할 수 있는 VARCHAR
유형입니다. 마지막으로 삽입된 id
를 가져오기 위해 mysqli()
는 insert_id
명령을 제공합니다. 아래에서 확인하십시오.
$mysql->insert_id;
작동 중인 이 명령을 보려면 먼저 INSERT
쿼리를 실행한 다음 insert_id
명령을 실행하여 마지막으로 삽입된 id
를 확인하십시오.
<?php
$mysqli = new mysqli(
"host_name",
"username",
"password",
"database_name",
"port",
"socket"
);
// Checking connection
if ($mysqli -> connect_errno){
echo "Something went wrong. Failed to connect with MySQL database".
$mysqli -> connection_error;
exit();
}else{
echo "Connected";
}
$sql_query = "INSERT INTO table_name (column_name2) VALUES ('value_2')";
if ($mysqli->query($sql_query) === TRUE) {
printf("Last inserted record ID %d. \n", $mysqli->insert_id);
} else {
echo "Error: ". $sql_query . "<br>" . $mysqli->error;
}
?>
위의 코드에서 $mysqli -> query()
함수는 선택한 데이터베이스에 대해 주어진 쿼리를 실행합니다. 반환된 값을 비교합니다.
TRUE
인 경우 printf()
함수를 사용하여 형식화된 문자열을 출력합니다. 그렇지 않으면 $mysqli -> error
를 사용하여 오류를 인쇄합니다.
printf()
함수에 제공한 매개변수는 제공한 원래 문자열의 %
기호 뒤에 삽입됩니다. 그리고 %d
기호는 삽입될 값이 Signed
십진수(음수, 양수 또는 0)임을 의미합니다.