Symfony2で新規挿入されたデータのauto_incrementの値を取得する
MySQLにはテーブルにデータを挿入した順番に値を付けてくれるauto_incrementという機能(PostgreSQLではserial、SQLServerではidentityと呼ばれる)があるのですが、
Symfony2を使用している上でその値を取得する方法を記載します。
Symfony2を利用していない場合
mysql_query();によるMySQLへのデータ登録後、下記のPHPあるいはMySQLの関数を利用する。
PHPの関数
1 | $auto_increment_id = mysql_insert_id(); |
MySQLの関数
1 | $auto_increment_id = last_insert_id(); |
Symfony2を利用している場合
実は、何もしなくてもSymfonyが勝手にやってくれています。
Symfony2ではデータをテーブルに登録後(Symfony2の場合、flush();という関数を発行することで、自動的にクエリを送信してくれますが)、auto_incrementの値を自動的に取得し、Entityに持たせてくれています。
なのでDB登録後、getId();等のアクセッサーを利用することで取得できます。
とても分かりやすく、親切ですね。
しかし、最近Symfony2を使用し始めたこともあり、上記のことを知らず、auto_incrementの取得に若干苦労しました…。
今後、精進致します。
Author Profile
スターフィールド編集部
SHARE