問題タブ [mysql-insert-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
856 参照

php - php mysql_insert_id()がマルチユーザーと競合する可能性があります

mysql_insert_id() が最後に挿入された ID を提供することはわかっていますが、以下の状況で問題が発生する可能性があるかどうか疑問に思っています。


UserA -> ROW を TABLE に挿入し、挿入された ID を取得する関数を呼び出します

実行日時: 2013-10-01 10:18:25

行 ID: 1


UserB -> ROW を TABLE に挿入し、挿入された ID を取得する関数を呼び出します

実行日時: 2013-10-01 10:18:26

行 ID: 2


実行時間が 1 秒だけ異なることに注意してください。

UserA が mysql_insert_id() を実行する前に、UserB が行の挿入を完了したと仮定します。

UserA はROW ID: 1またはROW ID: 2の値を取得しますか?

0 投票する
1 に答える
53 参照

mysql - MySQL Multi-Row Insert で挿入 ID を取得する

GMail から連絡先をインポートしていますが、連絡先が数百、数千になることがあります。

INSERTを実行するこのクエリがあります

詳細を別のテーブルにさらに挿入できるようにするには、挿入 ID を取得する必要があります。

1 回のインポートで 1,000 件以上のクエリを実行できず、自動インクリメントが一貫していない可能性があることを考えると、どうすればよいでしょうか。また、アプリケーションは同時に多くの人によって使用されます。これは、一度に 2 人以上の人が挿入を実行している可能性があることを意味します (インポートだけでなく)。

0 投票する
1 に答える
498 参照

php - 複数の mysql_insert_id

このような構造のテーブルが3つありますが、

従業員 > ID (PK)、名前

家族 > family_id (PK)、id (従業員 PK)

父 > 父の ID (PK)、家族の ID (家族の PK)、父の名前

mysql_insert_id()またはを使用して最後に挿入された ID を取得できることはわかってLAST_INSERT_IDいます。ID を取得して、次のように各テーブルに挿入したかったのです。

私は正しいことをしていますか?はいの場合、まったく同じことを行うためのより良い方法はありますか?

ありがとうございました。:)

0 投票する
7 に答える
510 参照

php - mysql_insert_id() が 0 を返す

この問題を抱えたのは私が初めてではありませんが、他の解決策は機能しません。このスクリプトは、mysql_insert_id() に対して常に 0 を返します。複数の主キーを使用しています。

私はすでに試しましたmysql_insert_id($link)$linkmysql_connect()mysql_insert_id($GLOBALS['DB']->MySQLiObj)

私の $GLOBAL['DB']

私のMySQLクラス:

0 投票する
1 に答える
189 参照

mysql - 遅延挿入を使用して、MySQL でフォローアップ クエリの ID を取得することは可能ですか?

私はウェブサイト用の分析ツールを構築しており、INSERT のシーケンスを単純化するために次のようにしています。

つまり、中央のテーブルと、メインの INSERT の ID を使用してそれにリンクする他のテーブルがあります。これらの INSERT を DELAYED INSERT に変換して、分析データの保存を担当するデータベース サーバーが過負荷になり、すべての書き込みを処理できなくなった場合にユーザーが苦しまないようにしたいと考えています。ただし、DELAYED INSERT では LAST_INSERT_ID() を使用できないため、テーブル間の上記の関係を維持する方法がわかりません。

独自の ID を生成して一意のインデックスを割り当て、必要に応じてそれを使用してテーブルを結合する以外に、簡単な方法はありますか。

0 投票する
2 に答える
93 参照

php - 単一ステートメントの複数挿入クエリを実行した後、すべての last_insert_ids を取得する方法は?

「location」テーブルと「location_detail」[異なる言語データを挿入するための] テーブルがあります。「location_detail」にはロケーション テーブルの FK が含まれます

一度に複数の場所を入力する必要があります。だから私がやっていることは次のとおりです。

その中で「for」ループを実行し、最初に「location」テーブルにデータを入力し、loc_id を取得してから location_detail テーブルに挿入します [複数の言語が存在する場合は、ここで「location_detail」テーブルに、もう一度クエリを複数回実行したい]。

したがって、3 つの場所を追加したい場合 -> 外側の 'for' ループは、クエリ実行の合計数の 3 回実行されます。is 6 [複数の言語が存在する場合、これは複数になります]

==>私の目的は、単一のステートメントで複数の挿入を使用して、3つすべての(たとえば)場所を「場所」テーブルに挿入し、3つすべてのlast_insert_idを取得することです。

==>次に、「location_details」テーブルに追加するための単一ステートメントの複数の挿入クエリを実行できます

ここで、この last_insert_ids を配列で取得するにはどうすればよいでしょうか?

0 投票する
1 に答える
722 参照

php - MySQL挿入関数からの戻り値

関数があり、mysql データベースに書き込みます。データベースに正常に書き込むことができますが、書き込み先のデータベース内の行の一意の ID を減らすのに問題があります。

はい、私は mysql クエリがまもなく減価償却されることを知っています。

このコードを使用して、別のファイルで呼び出します ($newBorrowRequest は、フィールドが定義された配列です)。

したがって、基本的に私の質問は次のとおりです。上記のコードで、挿入先の行のIDを返すにはどうすればよいですか? (関数内でエコーしたくありません。最初に関数を呼び出す販売ファイルの外側にある必要があります)。

0 投票する
3 に答える
250 参照

php - MySQL 挿入から行 ID を返す

関数ファイル内にこの関数があります。これを使用して呼び出します (関数ファイルを含む別のファイルから): newBorrow_request($newBorrowRequest); ($newBorrowRequest) はフィールドの配列です。

関数はデータベースにデータを挿入し、正常に動作します。

質問: 挿入先の ID フィールドを返すにはどうすればよいですか? 関数が呼び出されるのと同じファイルに値が必要です。関数のコードと、別のファイルでそれを呼び出して ID を取得する方法のコードを教えてもらえますか?

ありがとう

0 投票する
1 に答える
66 参照

database - mysqli_insert_id は、ID という列がある場合にのみ機能しますか?

こんにちは、mysqli_insert_id 関数を使用すると、ID という列がある場合にのみ自動インクリメント ID 値が挿入されるのではないかと思っていました。

0 投票する
1 に答える
231 参照

php - mysql_insert_id() が常に 0 を返す

外部キー制約を使用して、2 つのテーブルに新しい行をフォームから入力する必要があるこのコードがあります。これは最初の挿入のみを参照しており、関連するテーブルに使用するために生成された last_id を特定する必要があります。しかし、$last_id は、新しいレコードが作成されているにもかかわらず、常にゼロを返します。

完全に同様のコードは別のスクリプトで完全に機能するため、php バージョンの問題ではありません。

//データベースに情報を書き込みます mysql_query("INSERT INTO documents(doc_name,doc_type,doc_manager,doc_pointer) VALUES ('$name', '$type', '$manager', '$pic')") ; $id = mysql_insert_id(); Echo "最後のプロトコル番号=".$id."
";

問題がどこにあるのか理解できません。