mysqlをphpのPDOを経由して使っているのですが、

データを挿入した際に、auto_incrementしているIDデータを取得しようと思った場合、どうしたらいいでしょうか?
phpにはmysql_insert_id()というのがあるので、いけそうですがこれのPDO版のようなものがあればと思いまして。
データ挿入後、最後に生成されたIDデータを取りにいく方法でも問題ないのならそれでいこうと思っています。
ほかにもIDを取得する方法ならなんでもOKです。

テーブル:
CREATE TABLE `test` (
/*ID*/
`id` int(11) NOT NULL auto_increment,
/*挿入するデータ*/
`data1` int(11) NOT NULL,
PRIMARY KEY (`id`),
);

回答の条件
  • 1人2回まで
  • 登録:2007/06/26 13:18:40
  • 終了:2007/06/26 13:52:38

回答(1件)

id:nohohon_x No.1

nohohon_x回答回数72ベストアンサー獲得回数12007/06/26 13:49:05

ポイント60pt

PDOにもあるハズです。lastInsertId()

http://jp2.php.net/manual/ja/function.PDO-lastInsertId.php

id:chirubo

本当ですね。ありがとうございます。

チェック不足でした。

2007/06/26 13:51:21
  • id:b-wind
    http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.html
    MySQL 自身に LAST_INSERT_ID() という関数が用意されているので、

    SELECT LAST_INSERT_ID();

    というクエリを発行するとどんな言語・環境でも取り出せる。
  • id:chirubo
    そうだったんですね。。勉強になりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません