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 サイトの他の関連記事を参照してください。