mysql_insert_id
(PHP 4, PHP 5)
mysql_insert_id — 直近のクエリで生成された ID を得る
警告 この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。
説明
mysql_insert_id
([ resource $link_identifier
= NULL
] ) : int
直近のクエリ (通常は INSERT) により AUTO_INCREMENT カラム用に生成された ID を取得します。
パラメータ
link_identifier
- MySQL 接続。 指定されない場合、mysql_connect() により直近にオープンされたリンクが 指定されたと仮定されます。そのようなリンクがない場合、引数を指定せずに mysql_connect() がコールした時と同様にリンクを確立します。 リンクが見付からない、または、確立できない場合、
E_WARNING
レベルのエラーが生成されます。
返り値
直近のクエリにより AUTO_INCREMENT カラム用に生成された
ID を返します。直近のクエリが AUTO_INCREMENT な値を生成しなかった
場合に 0
、MySQL 接続が確立されていなかった
場合に false
を返します。
例
例1 mysql_insert_id() の例
<?php$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) { die('Could not connect: ' . mysql_error());}mysql_select_db('mydb');mysql_query("INSERT INTO mytable (product) values ('kossu')");printf("最後に挿入されたレコードの ID は、%d\n", mysql_insert_id());?>
注意
警告
mysql_insert_id() は、MySQL C API 関数
mysql_insert_id()
の返り値の型を
long
型(PHP では int と呼ばれる)
に変換します。
AUTO_INCREMENT カラムが BIGINT 型 (64 ビット) である場合、
変換結果は不正確になります。
かわりに、MySQL の SQL 関数
LAST_INSERT_ID() を SQL 内で使いましょう。
PHP の integer 型の最大値に関する詳細な説明は、
integer
のドキュメントをごらんください。
注意:
mysql_insert_id() は直近のクエリに対して働くので、 値を生成したクエリの直後に mysql_insert_id() をコールすることを忘れないようにしてください。
注意:
MySQL の SQL 関数
LAST_INSERT_ID()
の値には、 常に直近の AUTO_INCREMENT の値が含まれており、クエリの間では リセットされません。