1

SELECT LAST_INSERT_ID()最後に挿入された行の ID を取得するには、MySQL の関数を使用する必要があります。これを実行しようとすると:-

  mysql_query("
    INSERT INTO `posts`
           (`user`, `body`, `time`, `pageID`)
           VALUES('pachykutty', 'testMessage', '2012-10-26 04:59:43', 1);
    SELECT LAST_INSERT_ID();");

エラーが発生しますが、次のように2つのクエリを個別に実行すると:-

mysql_query("
INSERT INTO `posts`
       (`user`, `body`, `time`, `pageID`)
       VALUES('pachykutty', 'testMessage', '2012-10-26 04:59:43', 1)");
mysql_query("SELECT LAST_INSERT_ID()");

大丈夫です。2 つのクライアントが同時にクエリを実行すると、それらの LAST_INSERT_ID が競合するのではないかと心配しています。したがって、2 つのクエリを遅滞なく一緒に実行したいと考えています。何か方法はありますか?

4

1 に答える 1

3

そのようなクエリを使用できます

mysql_query("
INSERT INTO `posts`
       (`user`, `body`, `time`, `pageID`)
       VALUES('pachykutty', 'testMessage', '2012-10-26 04:59:43', 1)");
$var =  mysql_insert_id();

mysql_insert_id は、最後に実行されたクエリに作用します。

心配する必要はありません。上記のコードを使用してください。

于 2012-10-26T05:24:32.880 に答える