ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して MySQL に新しく挿入された行の ID を取得するにはどうすればよいですか?

PHP を使用して MySQL に新しく挿入された行の ID を取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 05:28:10868ブラウズ

How Can I Get the ID of a Newly Inserted Row in MySQL Using PHP?

MySQL テーブルに行を挿入し、その ID を取得する

自動インクリメント ID フィールドを持つ MySQL テーブルに行を挿入する場合、挿入された行の ID を取得することが重要になる場合があります。ただし、挿入と ID 取得の間の時間間隔により、潜在的なエラーが発生する可能性があります。

mysqli_insert_id() 関数

PHP 関数 mysqli_insert_id() は、これに対する解決策を提供します。問題。 INSERT クエリを実行した後、mysqli_insert_id() は現在の接続に最後に挿入された行の ID を返します。これにより、データベースを再度クエリしたり、競合状態に依存したりする必要がなくなります。

使用例:

$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);

echo "Inserted Row ID: $id";

代替アプローチ: クエリの結合

あるいは、MySQL の LAST_INSERT_ID() メソッド一意の ID を割り当てながら、単一のクエリで複数のテーブルを変更するために使用できます:

mysqli_query($link, "INSERT INTO my_user_table ...;
  INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");

注: 各 MySQL 接続は個別の ID トラッカーを維持し、ID の競合を防ぎます。

以上がPHP を使用して MySQL に新しく挿入された行の ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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