STERFIELD

2015/11/18

Symfony2で新規挿入されたデータのauto_incrementの値を取得する

Symfony2で新規挿入されたデータのauto_incrementの値を取得する

symfony2

MySQLにはテーブルにデータを挿入した順番に値を付けてくれるauto_incrementという機能(PostgreSQLではserial、SQLServerではidentityと呼ばれる)があるのですが、
Symfony2を使用している上でその値を取得する方法を記載します。

 

Symfony2を利用していない場合

mysql_query();によるMySQLへのデータ登録後、下記のPHPあるいはMySQLの関数を利用する。

PHPの関数

MySQLの関数

 

Symfony2を利用している場合

実は、何もしなくてもSymfonyが勝手にやってくれています。
Symfony2ではデータをテーブルに登録後(Symfony2の場合、flush();という関数を発行することで、自動的にクエリを送信してくれますが)、auto_incrementの値を自動的に取得し、Entityに持たせてくれています。
なのでDB登録後、getId();等のアクセッサーを利用することで取得できます。
とても分かりやすく、親切ですね。

しかし、最近Symfony2を使用し始めたこともあり、上記のことを知らず、auto_incrementの取得に若干苦労しました…。
今後、精進致します。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい