ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで新しい MySql レコードの ID 値を取得する 3 つの方法

PHP_PHP チュートリアルで新しい MySql レコードの ID 値を取得する 3 つの方法

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

1. 文を使用する:

コードをコピーします コードは次のとおりです:
mysql_query("select max(id) from t1",$link);

このメソッドを使用して取得するのは最大の ID 値であり、実際には最後の値になります。ただし、リンク スレッドが複数ある場合、この最大の ID は挿入するデータの自動インクリメント ID 値であるとは限りません。マルチスレッドに適しています。

2 番目に、関数 msyql_insert_id();
を使用します。
PHP では、データベースに挿入された ID 値を取得する必要があることが多く、まさにそのような関数があります:
コードをコピーします コードは次のとおりです:

//データベースに挿入されたステートメントを実行します
//……
$getID=mysql_insert_id();//$getID は最後のレコードの ID です

//この関数を使用するための条件:
//1. フィールド名が RecordID であると仮定します
//2. フィールド属性は auto_increment
に設定する必要があります。 //3. データを追加してから使用します
//$newID = mysql_insert_id();
//ID値を取得します
?>

PHP 関数 mysql_insert_id() は、最後の INSERT クエリが実行された後、AUTO_INCREMENT によって定義されたフィールドの値を返します。

システムが INSERT を実行してから SELECT を実行すると、そのデータが別のバックエンド サーバーに分散される可能性があります。PHP プログラミングを使用している場合は、実際には、各 INSERT が終了した後に、mysql_insert_id() を使用して、挿入された ID を取得する必要があります。対応する自動インクリメント値が計算され、PHP に返されます。別のクエリを発行する必要はなく、mysql_insert_id() を使用するだけです。
ステートメントが挿入されると、最後の ID (mysql 自動インクリメント値) が自動的に返されます。
また、この関数は現在のリンクに対してのみ有効です。つまり、マルチユーザーに対して安全です。
この機能を使用することをお勧めします。 問題: ID のタイプが bigint の場合、機能しなくなります。

3. クエリを使用する

コードをコピー コードは次のとおりです:
msyql_query("select last_insert_id()");
last_insert_id() は mysql の関数であり、現在のリンクにも有効です
この使用法により、mysql_insert_id () で発生した bigint 型の問題が解決されます
概要:
特別な状況では、方法 2 を使用することをお勧めします。

http://www.bkjia.com/PHPjc/824827.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/824827.html技術記事 1. ステートメントを使用します。次のようにコードをコピーします。 mysql_query("select max(id) from t1",$link); このメソッドを使用すると、実際には最後の値である id の最大値が取得されますが、複数の場合は、スレッドをリンク... .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。