MySQLテーブルのフィールドををAUTO_INCREMENTなど、自動的に値を設定するようにしていると、
レコード挿入後でないと分からない値があります。
その値を知るには、MySQLのLAST_INSERT_ID()関数を使用して最後に挿入したレコードの値を
得ることができます。
1 2 3 4 5 6 7 8 9 |
$db_str = "mysql://". $user . ":" . $pass . "@" . $host . "/" . $dbname; $db = DB::connect($db_str); $sql = "INSERT INTO my_table (name) value('hogehoge')"; $db->query($sql); $sql = 'select LAST_INSERT_ID() id'; $data = $db->getOne($sql); $id = $data['id']; |
同時刻に複数の挿入があったとき目的のIDを得られないのでは?という心配もありますが、
このLAST_INSERTED_ID()関数は接続単位の最終挿入データを得ることができるため、
上記の一連のスクリプトの流れで最後の挿入となるので、スクリプト内で同じ接続に対して
シーケンシャルに挿入->ID取得となっていれば問題ありません。/