自動インクリメント ID フィールドを持つ MySQL テーブルに行を挿入する場合、後続の操作のために新しく生成された ID。
ID を取得する 1 つの方法は、挿入された情報と一致する行をデータベースにクエリすることです。ただし、この方法では、クエリが実行される前に別の行が挿入される競合状態が発生し、結果が不正確になります。
信頼できる解決策は、MySQL の LAST_INSERT_ID( ) 関数。 PHP の 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);
別のアプローチは、1 つの操作で複数のクエリを実行することです。 MySQL の LAST_INSERT_ID() メソッドを利用します。これにより、複数のテーブルが関係する場合でも ID が正しく割り当てられるようになります。
mysqli_query($link, "INSERT INTO my_user_table ...; INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
このメソッドにより、競合状態を心配する必要がなくなり、挿入された行の ID を取得する信頼性の高い方法が提供されます。
以上がPHP/MySQL で新しく挿入された行の ID を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。