mysql:3881
From: Akihiko Shinohara <Akihiko Shinohara <sino@xxxxxxxxxx>>
Date: Wed, 04 Jul 2001 10:11:05 +0900
Subject: [mysql 03881] Re: auto_increment の値の取得について
篠原です。 From: Tybalt of Capulet <ice-man@xxxxxxxxxx> Subject: [mysql 03880] Re: auto_increment の値の取得について Date: Wed, 04 Jul 2001 00:53:00 +0900 Message-ID: <20010704005210.BB7C.ICE-MAN@xxxxxxxxxx> > Aというテーブルに対してインサート文を発行してからmysql_insert_id()を得る > までの間に他の違う人がAテーブルに同じインサート文を発行した場合、 > auto_incrementフィールド値がmysql_insert_id()を実行することにより > 最初にインサート文を発行したidが返ってくるのか、もしくは後のインサートで > 発行したidが返ってくるのかがいまいち見えてきません。 コネクション毎にサーバに保持される... と書いてありませんでしたか? > > LAST_INSERT_ID() は、レコードを INSERT した時に、そのレコードの > > AUTO_INCREMENT フィールドに設定された値を知りたい時に使用します。 > > とLAST_INSERT_ID()を使うとありますし、「1708」には > > > mysql_db_query("somedatabase","insert into q(id) values(null)"); > > echo "Your access ID is :".mysql_insert_id(); > > というようにmysql_insert_id()を使うとあります。 > どっちが本当なのかわかりません。 どちらも本当です。 クエリによって、最近INSERTしたIDを得るには、LAST_INSERT_ID() を使います。直接、値を得るのが、mysql_insert_id()というMySQL のC言語のAPIです。それをPHPで使う為の関数が、同じ名前で用意され ています。 ___________________________________________ / Akihiko Shinohara /Hoct*Systems.Co.,Ltd / / http://www.hoctsystem.co.jp/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3877 2001-07-03 18:24 [Tybalt of Capulet <i] auto_increment の値の取得について 3878 2001-07-03 19:17 ┗[Akihiko Shinohara <s] 3880 2001-07-04 00:53 ┗[Tybalt of Capulet <i] -> 3881 2001-07-04 10:11 ┗[Akihiko Shinohara <s] 3883 2001-07-04 13:01 ┗[Tybalt of Capulet <i] 3884 2001-07-04 13:32 ┣[Akihiko Shinohara <s] 3892 2001-07-04 23:46 ┗[とみたまさひろ <tomm] 3897 2001-07-05 02:47 ┗[Tybalt of Capulet <i] 3912 2001-07-05 16:24 ┗[とみたまさひろ <tomm] 3913 2001-07-05 16:54 ┗[Tybalt of Capulet <i] 3914 2001-07-05 21:04 ┣[とみたまさひろ <tomm] 3918 2001-07-06 15:09 ┗[ken <kenn@xxxxxxxxxx] my.cnf で max_allowed_packet が反映されない?