현재 위치: > 최신 기사 목록> mysqli :: stmt_init 함수를 사용하여 삽입 작업을 수행하고 자체 증가 ID (insert_id)를 얻는 방법

mysqli :: stmt_init 함수를 사용하여 삽입 작업을 수행하고 자체 증가 ID (insert_id)를 얻는 방법

M66 2025-07-10

PHP에서는 MySQL 데이터베이스를 사용할 때 MySQLI 확장을 통해 데이터베이스와 상호 작용할 수 있습니다. 삽입 작업을 수행하고 데이터베이스에서 삽입 된 데이터의 자체 증가 ID를 동시에 얻으려면 MySQLI :: STMT_INIT 기능을 사용하여 달성 할 수 있습니다. 다음으로 MySQLI :: STMT_INIT를 사용 하여이 작업을 완료하는 방법에 대해 자세히 설명합니다.

1 단계 : 데이터베이스 연결을 만듭니다

먼저 데이터베이스 연결을 설정해야합니다. 코드의 보안을 보장하려면 MySQLI 의 객체 지향 메소드를 사용하여 데이터베이스에 연결하는 것이 좋습니다. 데이터베이스 연결을위한 샘플 코드는 다음과 같습니다.

 <?php
$host = 'localhost'; // 데이터베이스 호스트
$user = 'root';      // 데이터베이스 사용자 이름
$password = '';      // 데이터베이스 비밀번호
$dbname = 'test';    // 데이터베이스 이름

// 데이터베이스 연결을 만듭니다
$conn = new mysqli($host, $user, $password, $dbname);

// 연결이 성공했는지 확인하십시오
if ($conn->connect_error) {
    die("연결이 실패했습니다: " . $conn->connect_error);
}
?>

2 단계 : SQL 명령문 준비

삽입 작업을 수행 할 준비를 할 때는 먼저 SQL 문을 작성해야합니다. mysqli :: stmt_init 함수를 통해 준비된 문을 초기화 할 수 있습니다. 다음 예에서는 새 사용자를 사용자 테이블에 삽입합니다.

 $sql = "INSERT INTO users (username, email) VALUES (?, ?)";

3 단계 : 명령문 초기화

mysqli :: stmt_init를 사용하여 명령문 객체를 초기화 할 수 있습니다. 이 객체를 통해 매개 변수를 바인딩하고 쿼리를 실행할 수 있습니다.

 $stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
    die("SQL 실수: " . $stmt->error);
}

4 단계 : 매개 변수 바인딩

다음으로 SQL 명령문에서 실제 값을 자리 표시 자 ( ? )에 바인딩해야합니다. bind_param 방법을 사용하여 매개 변수 바인딩을 완료하십시오. 삽입하려는 사용자 이름이 Johndoe 이고 이메일이 Johndoe@m66.net 이라고 가정하면 다음과 같이 쓸 수 있습니다.

 $username = 'johndoe';
$email = 'johndoe@m66.net';

// 바인딩 매개 변수
$stmt->bind_param("ss", $username, $email);

위의 코드에서 "SS"는 두 개의 문자열 유형 매개 변수를 결합했음을 의미합니다.

5 단계 : SQL 문을 실행하고 자체 증가 된 ID를 얻습니다.

삽입 작업을 수행 한 후 MySQL은 새로 삽입 된 레코드에 대한 자체 증가 ID를 자동으로 생성합니다. insert_id 속성을 통해이 ID를 얻을 수 있습니다.

 if ($stmt->execute()) {
    echo "새로운 레코드 삽입 성공。삽입 ID ~을 위한: " . $conn->insert_id;
} else {
    echo "삽입 실패: " . $stmt->error;
}

여기에서 $ conn-> insert_id는 삽입 된 레코드의 자동화 ID를 반환합니다.

6 단계 : 연결을 닫습니다

삽입 작업을 수행 한 후 명령문과 데이터베이스 연결을 닫는 것을 잊지 마십시오.

 $stmt->close();
$conn->close();

완전한 코드 예제

다음은 mysqli :: stmt_init을 사용하여 삽입 작업을 수행하고 자동화 ID를 얻는 방법을 보여주는 완전한 샘플 코드입니다.

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$dbname = 'test';

$conn = new mysqli($host, $user, $password, $dbname);

if ($conn->connect_error) {
    die("연결이 실패했습니다: " . $conn->connect_error);
}

$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

$stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
    die("SQL 실수: " . $stmt->error);
}

$username = 'johndoe';
$email = 'johndoe@m66.net';

$stmt->bind_param("ss", $username, $email);

if ($stmt->execute()) {
    echo "새로운 레코드 삽입 성공。삽입 ID ~을 위한: " . $conn->insert_id;
} else {
    echo "삽입 실패: " . $stmt->error;
}

$stmt->close();
$conn->close();
?>