6

php と mysqli _* 関数を使用してストアド プロシージャを使用して挿入クエリを実行した場合、自動インクリメント ID フィールドの値を取得する方法はありますか?
mysqli->insert_id動作しないようです。

4

4 に答える 4

8

最後に実行したクエリは INSERT でしたか?

mysqli->insert_id適切な答えのようです:

戻り値

AUTO_INCREMENT前のクエリによって更新されたフィールドの値。接続に以前のクエリがなかった場合、またはクエリがAUTO_INCREMENT値を更新しなかった場合は、0 を返します。

于 2009-09-19T17:42:01.870 に答える
1

次のように、MySql にクエリを作成することができます。

SELECT LAST_INSERT_ID()

ただし、ストアドプロシージャで機能するかどうかはわかりません。

于 2009-09-19T17:32:33.473 に答える
1

挿入後にストアド プロシージャに次のステートメントを追加できます。

   SET @saved_id = LAST_INSERT_ID()

次に、プロシージャを呼び出した後、次のクエリを実行します。

   SELECT @saved_id
于 2009-09-19T18:49:27.163 に答える
0

mysqli->insert_id(ここでmysqli、データベース接続を表します) は、挿入の直後に使用する必要があります。読み取りを試みる前に同じ接続で他のクエリを実行すると、insert_id0 が返されます。

于 2014-01-07T10:20:49.953 に答える