ホームページ > バックエンド開発 > PHPチュートリアル > PHP でクロステーブル挿入に最後に挿入された ID を取得して使用する方法

PHP でクロステーブル挿入に最後に挿入された ID を取得して使用する方法

Barbara Streisand
リリース: 2024-12-02 06:56:10
オリジナル
504 人が閲覧しました

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

PHP でのクロステーブル挿入のための最後の行 ID の取得と使用

異なるテーブル間で複数の挿入を実行する場合、取得する必要があります。あるテーブルから最後に挿入された ID。後続の挿入で参照として使用されます。 PHP では、mysqli 拡張機能を使用して、このタスクを少し理解する必要があります。

提供されたコードでは、$mysqli->insert_id の結果を table1 挿入ステートメントの画像フィールドに直接バインドしようとしました。 。ただし、最後に挿入された 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート