ホームページ  >  記事  >  バックエンド開発  >  PHP は、挿入操作によって生成された ID を返します_PHP チュートリアル

PHP は、挿入操作によって生成された ID を返します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:33:13969ブラウズ

データベースで INSERT 操作を実行した後に生成された ID を知る必要がある場合があります (私が使用している MySQL の主キーは AUTO_INCREMENT に設定されています。挿入操作を実行する場合、ID 値を指定する必要はなく、ID 値が生成されます)このとき、PHP 関数 mysql_insert_id() を使用してこの ID を直接取得でき、非常に便利です。

ただし、AUTO_INCREMENT 属性を持つ ID 列の値が INSERT ステートメントで明確に指定されている場合、ID 値はユーザーによって指定され、データベースによって自動的に生成されないため、関数は 0 を返します。

PHP マニュアルでは、この関数について次のように説明されています。

mysql_insert_id()

mysql_insert_id() 関数は、前の INSERT 操作によって生成された ID を返します。前のクエリで AUTO_INCREMENT ID が生成されなかった場合、mysql_insert_id() は 0 を返します。

構文: mysql_insert_id(接続)

パラメータ接続、オプション。 MySQL 接続を指定します。指定しない場合は、以前の接続が使用されます。

mysql_insert_id() は、指定された接続における前の INSERT クエリで生成された AUTO_INCREMENT の ID 番号を返します。接続が指定されていない場合は、最後に開いた接続が使用されます。

後で使用するために値を保存する必要がある場合は、値を生成したクエリの直後に必ず mysql_insert_id() を呼び出してください。

リーリー

mysql_insert_id() は、指定された link_identifier 内の前の INSERT クエリで生成された AUTO_INCREMENT の ID 番号を返します。 link_identifier が指定されていない場合は、最後に開かれた接続が使用されます。前のクエリで AUTO_INCREMENT の値が生成されなかった場合、mysql_insert_id() は 0 を返します。後で使用するために値を保存する必要がある場合は、値を生成したクエリの直後に mysql_insert_id() を呼び出してください。

LAST_INSERT_ID()

MySQL も同じ機能を備えた API を提供します。これは常に最新の AUTO_INCREMENT 値を保存し、クエリ ステートメント間でリセットされません。つまり、INSERT 操作の実行後、SELECT、UPDATE、DELETE ステートメントのいずれも影響しません。この API の戻り値。

SELECT LAST_INSERT_ID(); を使用して、LAST_INSERT_ID() の戻り値をクエリできます。

複数のレコードを挿入するには単一の INSERT ステートメントを使用します。LAST_INSERT_ID() は、挿入された最初のレコードによって生成された AUTO_INCREMENT 値のみを返します。

http://www.bkjia.com/PHPjc/752533.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752533.html技術記事場合によっては、データベースで INSERT 操作を実行した後に生成された ID を知る必要があることがあります (私は MySQL を使用しており、主キーは AUTO_INCREMENT に設定されています。挿入操作を実行するときは、ID の値を指定する必要はありませんが...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。