ホームページ > バックエンド開発 > PHPチュートリアル > PHP/MySQL で INSERT 後に自動インクリメントされる ID を効率的に取得するにはどうすればよいですか?

PHP/MySQL で INSERT 後に自動インクリメントされる ID を効率的に取得するにはどうすればよいですか?

DDD
リリース: 2024-12-08 04:12:10
オリジナル
899 人が閲覧しました

How to Efficiently Retrieve the Auto-Incremented ID After an INSERT in PHP/MySQL?

PHP/MySQL での行の挿入と 'id' の取得

MySQL テーブルに行を挿入するには、多くの場合、新しく生成された 'id' を取得する必要があります。挿入された行に対して。通常、これには、挿入されたデータと一致する行をフェッチするための後続のクエリが必要になりますが、この方法では、さまざまな「id」値を持つ重複行が発生する可能性が生じます。

より効率的なアプローチは、MySQL の自動インクリメントを利用することです。機能と PHP mysqli_insert_id() 関数。この関数を使用すると、現在の接続内で最後に挿入された行の ID を取得できます。

<?php
$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);
?>
ログイン後にコピー

このアプローチにより、競合状態のリスクが排除され、新しく挿入された行の「ID」を取得する信頼性の高い方法が提供されます。 row.

もう 1 つの手法では、MySQL の LAST_INSERT_ID() を利用して、1 つのトランザクションで 2 つのクエリを実行します。メソッド:

<?php
mysqli_query($link, "INSERT INTO my_user_table ...;
  INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
?>
ログイン後にコピー

このメソッドは、単一のトランザクション内で両方のテーブルを変更し、影響を受けるテーブル間で一貫したデータを保証します。

以上がPHP/MySQL で INSERT 後に自動インクリメントされる ID を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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