Codeigniter:インサートした行のIDを取得

Codeigniterデータベースに行を挿入する時は、「$this->db->insert()」を使用します。
データを挿入する場合は、下記のようにテーブル名とデータ配列を設定し実行します。

$this->db->insert('table', $data);

「$this->db->insert()」を実行後に挿入した行のIDを取得したい場合があります。

ID取得する場合は、クエリヘルパーメソッドの「$this->db->insert_id()」を使用すると、
データベースインサートした行のIDを取得することができます。


$this->db->insert_id()

データベースに挿入した行のIDを取得します。


インサートした行のIDを取得

インサートを行った後に「$this->db->insert_id()」記述します。

$data = array(
	'name' = 'テスト',
	'address' = '東京都',
	'tel' = '000-0000-0000'
);

$this->db->insert('table', $data);

$id = $this->db->insert_id();

「$id」に挿入した行のIDが格納されるので、IDを取得することができます。


MySQL:INSERTで複数行追加する

MySQLでデータをINSERTする方法と複数のレコードを1つのSQLで追加する方法をメモします。


INSERT文の書式

INSERT INTO テーブル (フィールド, フィールド) VALUES (データ, データ);

INSERT文の使用例

「user_table」テーブルに1行データを追加する場合は、
下記のように記載します。

INSERT INTO user_table (id, name, memo, status) VALUES (1, 'test1', 'メモ', 1);

また、フィールドの値を全て指定する場合は、
フィールド名を省略することが可能です。

INSERT INTO user_table VALUES (1, 'test1', 'メモ', 1);

複数行データを追加する場合は下記のように記載します。

INSERT INTO user_table (id, name, memo, status) VALUES (1, 'test1', 'メモ', 1);
INSERT INTO user_table (id, name, memo, status) VALUES (2, 'test2', 'メモ', 1);
INSERT INTO user_table (id, name, memo, status) VALUES (3, 'test3', 'メモ', 1);
INSERT INTO user_table (id, name, memo, status) VALUES (4, 'test4', 'メモ', 1);

複数レコードを1つのSQL文で実行する場合は
下記のようにカンマ区切りで記載します。

INSERT INTO user_table (id, name, memo, status) VALUES 
(1, 'test1', 'メモ', 1),
(2, 'test2', 'メモ', 1),
(3, 'test3', 'メモ', 1),
(4, 'test4', 'メモ', 1);