mysql:3877
From: Tybalt of Capulet <Tybalt of Capulet <ice-man@xxxxxxxxxx>>
Date: Tue, 03 Jul 2001 18:24:08 +0900
Subject: [mysql 03877] auto_increment の値の取得について
神崎です。
現在auto_incrementで自動的に割り振られた値を得ようとして
つまづいております。
下記のようなidがauto_incrementのテーブルが存在します。
create table A (
id INT(9) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
primary key (id)
)
マニュアルの説明ではmysql_insert_id()は
「前のクエリによって AUTO_INCREMENT フィールドに生成された ID を返します。」
ということは下記のようなインサートを発行してからmysql_insert_id()を
実行するとこのインサートで割り振られたidを得ることができるのでしょうか?
INSERT INTO A (name) VALUES('$name');
またちょっとひっかかるのが、アクセス過多で同時に複数インサートをしようとした時
mysql_insert_id()の値がずれてしまい同時に行った違うIDを取得してしまうことは
考えられるのでしょうか?
更にここで質問するのは場違いとは思いますがPHP4.0.5でこの処理を行っており、
下記のようにmysql_insert_id()を取得しようとしたのですができませんでした。
実際のmysql_insert_id()の使い方がわかっておりません。
$insid = mysql_fetch_array( mysql_query( "mysql_insert_id() as ins" ) );
<? echo $insid[ins] ?>
どなたかおわかりの方ご教授いただけないでしょうか?
_______________________________R_y_u_____
神崎 隆
Mail:ice-man@xxxxxxxxxx
_____K_a_n_z_a_k_i________________________
-> 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 が反映されない?