mysql_insert_id 関数を使用する場合、間違った操作プロセス: ページ A は id=1 の項目を挿入し、ページ B は id=2 の項目を挿入します。ページ A で mysql_insert_id を実行して取得される ID は 1 ですか 2 ですか?
ディスカッションへの返信(解決策)
ページ A は当然 1
現在のページの前のステップで実行された挿入文の ID を返す、という理解でよろしいでしょうか? W3school はあまりうまく言いません
1 でなければ、すべてを書くときに同時実行の問題を気にする必要があります。mysql_query("select LAST_INSERT_ID()");
ページ A の mysql_insert_id は 1 を返します
MySQL の mysql_insert_id は、サーバーにとって、大規模な同時実行状況でも MAX(id) ではなくアトミック操作です。不正確さはありません。
MySQL を見ることができます
mysql_insert_id は次のように定義されています
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
{
return mysql->gt;;last_used_con->;insert_id;
}
MYSQL パラメータは構造体ですこれには、データベース リンクと現在のデータベース リンクのいくつかのステータス値が含まれます。
MYSQL 構造体に insert_id があり、mysql_insert_id 関数はその構造体の値を返します。
間違いなく1、実際に操作できれば分かります