【PHP・mysqli】INSERTしたレコードの主キーを取得
やりたかったこと
mysqliで直前にINSERT処理で追加したレコードの主キー(id)を取得したかったのでメモ。
実装方法
mysqli::$insert_id
を使う。
直前のクエリで更新された
AUTO_INCREMENT
フィールドの値を返します。接続での直前のクエリがない場合や クエリがAUTO_INCREMENT
の値を更新しなかった場合は ゼロを返します。 公式リファレンスから引用
具体例
public function insertUserName(string $name) { $sql = "INSERT INTO users (name) VALUES (?)"; $stmt = $this->mysqli->prepare($sql); $stmt->bind_param('s', $name); $res = $stmt->execute(); // ↓ ココ!! $this->user_id = $stmt->insert_id; return $res; }