私はmysqli_insert_id()
を使用してテーブルの最後の自動インクリメントIDを取得しますが、常に '0'を返します。複合クエリのmysqli_insert_id
$sql = "INSERT INTO inventory (SELECT * FROM tmptable)";
$result = mysqli_query($link, $sql);
$newId = mysqli_insert_id($link); //$newID ends up being 0
inventory
テーブルの
id
列が自動インクリメントに設定されている
、およびmysqli_insert_id()
はSELECT
文の結果を挿入していないinventory
に他のINSERT
のクエリで正常に動作します。何らかの理由でSELECT
ステートメントが最後のクエリとして優先されていますか?mysqli_insert_id()
は0を返しますか?
これは私の場合の正解でした。私はとても巧みにしようとしなくなり、SELECTステートメントの結果をあらかじめ得て、変数をフィールドに保存して通常のINSERTを行った。その時点で、mysqli_insert_idは期待どおりに動作しました。 –