2012-02-20 16 views
1

私は今、この同じSQLクエリでデータを挿入して選択する方法は?

INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW()) 

のようなクエリを使用し、後でこの同じスクリプトのページでは、私はちょうど上記のクエリに挿入されていることcoin_ID値を使用する必要があります。私はNULLを追加したので、それは自動インクリメントの値です。

PHPでいくつかのチェックを行った後、この同じページでこのcoin_IDを使用するにはどうすればよいですか? mysqlの

+0

と私は言いましたが、私はそのcoin_IDを使用して別のテーブルのリンクされた列を選択します –

+0

この機能を使用すると、このエラーが発生します。http://i.imgur.com/f34EJ.png権限の問題? –

答えて

0

おかげ

+0

この関数は、現在のコンテキストが挿入されてからこの関数を実行するまでの間にデータベースにINSERTする別のスレッド/プロセスがあるのに、実際に安全ですか?そうでない場合は、微妙な破損やエラーが発生して追跡が難しいようです。 – Kitsune

+0

@Kitsune 'LAST_INSERT_ID'はトランザクションでは安全で、' mysql_insert_id'は常に安全です(スレッド間で単一のDB接続を共有しないPHPコードの場合)。 http://stackoverflow.com/questions/1808337/is-mysql-insert-id-thread-safeを参照してください。 – Borealid

+0

@Kitsune完全な愚か者としてMySQLの開発者を連れて行ってはいけません。 –

1

最後に挿入されたIDを取得するのにmysql_insert_idを使用してください。

1

$coin_ID = mysql_insert_id();

2

それはあなたがPHPを使用しているデータベースドライバに依存します。あなたが使用している場合は

$coin_id = $DB->lastInsertId() 

:あなたは、あなたがlastInsertId()メソッドを使用することができますPHPのPDOを使用している場合

$coin_id = mysql_insert_id() 

:あなたは、標準のMySQL関数を使用している場合は、mysql_insert_id機能を使用することができますRETURNS sqlキーワード(postgresなど)をサポートするデータベースであれば、1つのクエリでそれを実行できます。しかし、MySQLはそれをサポートしていません。

INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW()) RETURNING coin_id; 

あなたが使用しているデータベースとの対話の方法が含まれるように、あなたの投稿を編集した場合、我々はより具体的な答えを提供することができます。

関連する問題