SQLを使ってレコードを追加する場合、IDなどをAuto Increment設定にしていると、INSERTするまで割り振られるIDが分かりません。割り振られるIDが分かれば、そのIDを使って他のテーブルなどにレコードを作成できるようになって便利ですよね。

今回はPHPを使って、最後にSQLでINSERTしたIDを取得する方法を紹介します。

最後にINSERTしたIDを取得する関数は、mysqli_insert_id関数です。mysql_insert_idという関数もあるのですが、現在は利用が推奨されていないので、iが付いているmysqli_insert_id関数を利用します。

// 各種パラメータ
$URL = "localhost";
$ID = "user";
$PW = "password";
$DB_NAME = "mydb";

// データベース接続
$link = mysqli_connect($URL, $ID, $PW, $DB_NAME);

// レコードを追加
// person_tableはテーブル名、カラムはname,ageの2つ
$query = "INSERT INTO person_table VALUES ('太郎','18')";
mysqli_query($link, $query);

// INSERTされたレコードのID
printf ("New Record ID=%d\n", mysqli_insert_id($link));

// データベースを閉じる
mysqli_close($link);

ご紹介した例ではIDをprintfしていますが、変数に代入すればいろいろと活用できると思います。