> 백엔드 개발 > PHP 튜토리얼 > PHP에서 크로스 테이블 삽입을 위해 마지막으로 삽입된 ID를 검색하고 사용하는 방법은 무엇입니까?

PHP에서 크로스 테이블 삽입을 위해 마지막으로 삽입된 ID를 검색하고 사용하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-02 06:56:10
원래의
503명이 탐색했습니다.

How to Retrieve and Use the Last Inserted ID for Cross-Table Inserts in PHP?

PHP에서 교차 테이블 삽입을 위한 마지막 행 ID 검색 및 사용

서로 다른 테이블에서 여러 삽입을 수행할 때 검색이 필요합니다. 후속 삽입에서 참조로 사용하기 위해 한 테이블에서 마지막으로 삽입된 ID입니다. PHP에서 mysqli 확장을 사용하는 경우 이 작업을 수행하려면 약간의 이해가 필요합니다.

제공된 코드에서 $mysqli->insert_id의 결과를 table1 insert 문의 이미지 필드에 직접 바인딩하려고 했습니다. . 그러나 마지막으로 삽입된 ID는 이전 삽입 문에서 가져와야 하므로 이 접근 방식은 올바르지 않습니다.

마지막으로 삽입된 ID를 올바르게 검색하고 사용하려면 먼저 테이블에 자동 증가 필드가 있는지 확인해야 합니다. 일반적으로 ID로 명명됩니다. 이 필드는 새 레코드의 기본 키로 사용할 다음 사용 가능한 정수 값을 추적합니다.

자동 증가 필드가 있으면 mysqli_insert_id($conn) 함수를 사용하여 레코드의 ID를 검색할 수 있습니다. 마지막으로 삽입된 행. 예는 다음과 같습니다.

$username = 'user1';
$fname = 'John';
$lname = 'Doe';

// Insert into table2
$insert = "INSERT INTO table2 (username) 
VALUES (?)";

if ($stmt = $mysqli->prepare($insert)) {
    $stmt->bind_param('s', $username);
    $stmt->execute();
}

// Retrieve last inserted ID for image
$last_id = mysqli_insert_id($conn);

// Insert into table1
$insert = "INSERT INTO table1 (username, firstname, lastname, image) 
VALUES (?, ?, ?, $last_id)";

if ($stmt = $mysqli->prepare($insert)) {
    $stmt->bind_param('sss', $username, $fname, $lname);
    $stmt->execute();
}
로그인 후 복사

이 수정된 코드에서는 먼저 table2에 레코드를 삽입한 다음 mysqli_insert_id($conn)를 사용하여 마지막으로 삽입된 ID를 검색합니다. 그런 다음 이 ID는 table1에 대한 후속 삽입 문의 이미지 필드로 사용됩니다.

위 내용은 PHP에서 크로스 테이블 삽입을 위해 마지막으로 삽입된 ID를 검색하고 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿