ホームページ > バックエンド開発 > PHPチュートリアル > 前の挿入ステップの SQL ステートメントの ID の取得に関する質問

前の挿入ステップの SQL ステートメントの ID の取得に関する質問

WBOY
リリース: 2016-06-13 12:09:23
オリジナル
1199 人が閲覧しました

前挿入ステップのSQL文のID取得問題について
mysql_insert_id関数を使用すると、Aページがid=1の項目を挿入、Bページがid=の項目を挿入するという誤った操作プロセスが発生します。 2、ページ A が mysql_insert_id を実行します。取得された ID は 1 ですか、それとも 2 ですか?
------解決策のアイデア--------------------- -
ページはもちろん 1
-----ソリューションアイデア----------------------
1 でないと面倒なので、すべてを書くときに同時実行の問題を気にする必要があります。
------ソリューションのアイデア----------------------
mysql サーバーにクエリを送信できます

mysql_query("select  LAST_INSERT_ID()");
ログイン後にコピー
ページが 10,000 ある場合はどうなりますか?それが重要なトランザクション操作である場合はどうすればよいでしょうか?データベースへのクエリの方が信頼性が高くなります
-----ソリューションのアイデア----------------------
ページmysql_insert_id の戻り値は 1

MySQL の mysql_insert_id は、サーバーの場合、MAX(id) ではなくアトミック操作です。同時実行性が高い場合でも、これは発生しません。状況。

MySQL の

mysql_insert_id は次のように定義されています

my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
{
return mysql->>;last_used_con ->;insert_id;
}

MYSQL パラメータは、データベース リンクと現在のデータベース リンクのいくつかのステータス値を含む構造体です。

には insert_id があります。 mysql_insert_id 関数は、MYSQL 構造体の値を返します。
------解決策のアイデア----------------------
それは間違いなく 1 ですが、実際には可能です自分でやればすぐにわかります

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