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