1

発生したばかりの更新の自動インクリメント列から値を返す必要があります。

基本的に、ユーザーを XYZ 値で更新しています。

$stmt->execute();

自動インクリメントされるデータベースの ID 列から新しいレコードの値を取得する必要があります。

PDOlastInsertId();は最新のレコードを返すだけで、トラフィックの多いサイトでは危険な可能性がありますか?

4

1 に答える 1

4

MySqlを使用していることを願っています??

mysql サイトから:

生成された ID は、接続ごとにサーバーに保持されます。これは、関数によって特定のクライアントに返される値が、そのクライアントによって AUTO_INCREMENT 列に影響を与える最新のステートメントに対して生成された最初の AUTO_INCREMENT 値であることを意味します。この値は、他のクライアントが独自の AUTO_INCREMENT 値を生成したとしても、影響を受けることはありません。この動作により、各クライアントは、他のクライアントのアクティビティを気にせず、ロックやトランザクションを必要とせずに、独自の ID を取得できるようになります。

さらに遠く:

単一の INSERT ステートメントを使用して複数の行を挿入する場合、LAST_INSERT_ID() は、最初に挿入された行に対してのみ生成された値を返します。

接続ベースで動作するため、使用するのに節約できます。また、複数の行を挿入する場合は、それを PDO のrowCountメソッドと組み合わせて、挿入されたすべての ID を取得できます。

于 2013-02-08T12:33:15.153 に答える