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していますが、変数に代入すればいろいろと活用できると思います。
- 投稿タグ
- PHP