0

新しいユーザーをデータベースに追加して users テーブルに保存するスクリプトがあります。コントラクト テーブル (コントラクトのリスト) と、ユーザーがコントラクトにアクセスするためのルックアップ/リンク テーブルもあります。

新しいユーザーに与えられる一意の ID がわからない場合に、contracts テーブルに新しいユーザーを追加する最良の方法を知りたいです。

例:

ステップ 1 - サインアップ フォームには、通常のユーザー入力、ユーザー名、パスワードなど、および契約用の多数のチェックボックスがあります (すべての契約には一意の ID もあります)。

ステップ 2 - フォームが送信され、ユーザーの詳細がユーザー テーブルに追加され、その新しいユーザーに対して一意の ID が生成されます。

ステップ 3 - ステップ 1 で選択した契約は、選択した契約の一意の ID と新しいユーザーの一意の ID を使用して users_contracts テーブルに挿入されます。

これは私が脳ブロックを持っているところです。新しいユーザーの一意の ID はどうすればわかりますか?

現時点で考えられる唯一の方法は、通常どおり新しいユーザーを挿入し、新しいユーザー名に対して別のクエリを実行し、データベースから新しいユーザー ID を取得して、3 番目のクエリで users_contracts テーブルに挿入することです。

何かのようなもの:

INSERT INTO `users` _POST DATA FROM FORM

次に、上記の INSERTED ユーザーを取得し、変数に格納します。

SELECT FROM users _POST USERNAME

次に、users_contracts テーブルに追加します。

INSERT INTO users_contracts _POST contracts and the above created variable for the users ID

申し訳ありませんが、挿入とすべてのデータベースアクティビティに PDO を使用していることに言及する必要があります。

4

1 に答える 1

0

ユーザー挿入クエリを実行した後、次を実行します。

$userId = mysql_insert_id();

以前に挿入された行の ID を返します。

編集: 誰かが言及するので、実際には mysqli_insert_id() を使用する必要があります。これは、mysql_insert_id() およびその他の MySQL (MySQLi とは対照的に) が最終的に非推奨になるためです。

于 2013-04-25T15:17:04.070 に答える