ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi でクロステーブル挿入のために最後に挿入された ID を取得するにはどうすればよいですか?

MySQLi でクロステーブル挿入のために最後に挿入された ID を取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 02:42:10221ブラウズ

How to Retrieve the Last Inserted ID in MySQLi for Cross-Table Inserts?

クロステーブル挿入用に「mysqli_insert_id」を使用して最後の挿入 ID を取得しています

画像を別のテーブルのデータに関連付けようとしています。これを行うには、最初のテーブルに挿入された最後の行を取得し、その ID を使用して 2 番目のテーブルで挿入を実行する必要があります。ただし、最後の挿入 ID を取得するために使用しているメソッドは機能しません。

解決策:

MySQLi インターフェイスを使用して最後に挿入された ID を取得するための正しい構文は mysqli_insert_id($conn) です。その後、この ID を使用して挿入ステートメントにバインドできます。

コードの修正バージョンは次のとおりです:

$last_id = mysqli_insert_id($mysqli); // Get the last inserted ID

$stmt = $mysqli->prepare("
  INSERT INTO table1 (username, firstname, lastname, image) 
  SELECT ?,?,?,image FROM table2 t2 WHERE username = ? AND  t2.id = ? 
");
$stmt->bind_param('sssss', $username, $fname, $lname, $username, $last_id);
$stmt->execute();

追加の考慮事項:

最初のテーブルの ID フィールドが自動インクリメント フィールドであることを確認します。これにより、行が挿入されるたびに一意の ID が確実に生成されます。

以上がMySQLi でクロステーブル挿入のために最後に挿入された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。