データベースに挿入された行のIDを取得したいのですが、これを行う方法がわかりません。
SQL句RETURNING id
を使用して返そうとしましたが、動作しません。
行の挿入後にIDを返すにはどうすればよいですか?
PreparedStatement
でexecute()
メソッドを呼び出した後、挿入行のIDはinsert_id
属性。読むだけです。
$pstm->execute();
$pstm->insert_id;
_$newid = mysqli_insert_id($mysqli_db);
_
_$mysqli_db
_はmysqliデータベース接続です。私が知る限り、どの方法で行を挿入したかは関係ありません(準備済みステートメントまたは直接_INSERT INTO
_)。 mysqli_insert_id()
は、このdb接続を使用して最後に挿入された行のIDを返す必要があります。
別の方法は、SELECT LAST_INSERT_ID();
のような別のクエリを作成することです。
これは誤りです。使用する必要があります。
$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();