2011-07-22 17 views
1

基本的に私がやっているのは、自分のサイトのユーザーが登録ページに新しいアカウントを作成したときに、私はUserテーブルの新しく作成された行のプライマリキープロフィールテーブルの新しい行に挿入する(基本情報テーブル、電子メール、パスワードなど)PHP MySQLの外部キー自動挿入

私はこれをPHPで行いたいと思いますどんな助けもありがとう。 http://www.php.net/manual/en/mysqli.insert-id.php

があなたの最初の挿入後にIDを取得して、あなたの次のインサートでこれを使用します。

+0

ます。http:// stackoverflowの.com/questions/6611083/mysql-set-a-column-name-id-on-creation – JRL

答えて

2

あなたはmysqliのを使用している場合は、見てください。

0

基本的にINSERTは何も返さないので、MySQLでは本当にエレガントな方法はないと思います。 PostgreSQLはINSERT ... RETURNING句を使用できますが、それは拡張です。

つまり、PHPでmysql_*関数を使用している場合は、mysql_insert_idを使用できます(主キーがAUTO INCREMENTの整数の場合など)。

0

MySQLデータベースを使用している場合は、代わりに次のクエリをPHPから別のクエリ呼び出しを行うことができます:

「SELECT LAST_INSERT_ID();」ここではそれについて

さらに詳しい情報:http://www.jpgtutorials.com/mysql-last_insert_id-function

それは、特定の接続です。異なる接続からの同時挿入は、現在の接続に影響しません。

2

"in php"を実行することが本当に必要条件でない場合は、MySQLの組み込みTriggerメカニズムを使用してこの更新を行うことができます。

トリガ、イベント(INSERT、UPDATE、DELETE)の後または前に発生するために何かを引き起こす

だからあなたのトリガーは次のようになります。

トリガに
CREATE TRIGGER thistrigger AFTER INSERT 
ON User FOR EACH ROW 
UPDATE PROFILE SET "whatever" 

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

関連する問題