【PHP8.x】lastInsertRowIDメソッドの使い方
lastInsertRowIDメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
lastInsertRowIDメソッドは、SQLite3オブジェクトが直近に実行したINSERTクエリによって、新しく挿入された行のIDを取得するメソッドです。このメソッドは、特にデータベースが主キーの値を自動的に生成する設定になっているテーブル(例えば、AUTOINCREMENTキーワードが指定されたカラムを持つテーブルなど)にデータを挿入した後、その自動生成されたIDをPHPコード側で把握したい場合に非常に有用です。
具体的には、SQLite3オブジェクトに対してINSERT文を実行し、その操作が成功した直後にこのlastInsertRowIDメソッドを呼び出すことで、挿入された新しい行の一意の識別子(通常は主キーの値)を整数として取得できます。例えば、Webアプリケーションでユーザー登録を行う際に、ユーザー情報をデータベースに保存した後、自動生成されたユーザーIDを使って関連する設定情報テーブルにデータを追加したり、ユーザー固有のプロフィールページURLを生成したりするなどの、後続処理にこのIDを利用することが一般的です。
もし直前にINSERTクエリが実行されていない場合や、INSERTクエリが失敗した場合、あるいはIDが自動的に生成されない形式のINSERTクエリだった場合には、このメソッドは通常0を返します。したがって、このメソッドはデータベースに新しく追加されたデータの識別子をプログラムで正確に管理するための、基本的ながら不可欠な機能の一つです。
構文(syntax)
1<?php 2$db = new SQLite3('my_database.db'); 3 4$db->exec('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)'); 5 6$db->exec("INSERT INTO users (name) VALUES ('Alice')"); 7$rowId = $db->lastInsertRowID(); 8echo "挿入された行ID: " . $rowId . "\n"; 9 10$db->close(); 11?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
SQLite3::lastInsertRowID メソッドは、直前に実行された INSERT 文によって挿入された行の ID を整数(int)で返します。