8

INSERTPDOを使用してSQLクエリでサインアップフォームを実行しています。useridこのINSERTの後、作成したばかりの(自動インクリメント、主キー)を抽出しINSERTて、別のテーブル(「確認コード」テーブル)に入れたいと思います。

しかし、このユーザーIDが、最初のユーザーの1/1000秒後に登録した2番目のユーザーのユーザーIDではないことを確認するにはどうすればよいですか?

テーブルをロックする方法を見つける必要がありますか?トランザクションを使用する必要がありますか?

4

2 に答える 2

10

lastInsertId()その接続に挿入された最後の行の識別子を返すため、(データベースへの接続が異なる)同時ユーザーは干渉しません。

于 2012-05-23T00:42:38.713 に答える
1

これを回避するには、電子メールまたは独自のフィールドで選択します。これにより、正しいユーザーIDを取得できることが保証されます。

例えば:

select id from user_table where email = 'user@email.com' limit 1;
于 2012-05-23T00:38:11.807 に答える