0

サイトの注文を含むデータを mysql データベースに挿入したいと考えています。

したがって、ユーザー名と自動インクリメント注文番号をデータベースに保存します。

問題は、注文番号を再度抽出する方法です。

私はこれを試しました:

SELECT ordernumber FROM transactions WHERE.....

これをどのように仕上げますか?

4

9 に答える 9

1

あなたが使用することができます

SELECT LAST_INSERT_ID();

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-idの詳細

SELECT や SET などの他の SQL ステートメントを実行した後は、C API 関数を使用して LAST_INSERT_ID(expr) の値を取得できないことに注意してください。したがって、INSERTステートメントを実行すると、その直後に実行します

SELECT LAST_INSERT_ID();

それは機能しますが、途中に他のステートメントがある場合は 0 を返し、それを取得する唯一の方法は以下に説明されています。

もう1つのオプションは、DESCテーブルをソートして最初の番号を取得することです

SELECT ordernumber FROM transactions ORDER By ordernumber DESC LIMIT 1;
于 2013-04-17T09:53:24.080 に答える
0

別の方法は、クエリを実行することです

select max(ordernumber) as lastordernumber from transactions;

ここで、lastordernumber は目的の値です。

于 2013-04-17T10:00:18.663 に答える
0

データベースにデータを挿入するために使用している方法によって異なります。

mysql_* 関数の場合、mysql_insert_id() 関数を使用できます。

PDO の使用と mysqli_* については、次の回答を参照してください。準備されたステートメントを使用していますか?

于 2013-04-17T09:47:54.420 に答える
0

LAST_INSERT_ID() または mysql_insert_id も使用できます

于 2013-04-17T09:48:23.727 に答える
0
$lastOrderNumber = mysql_insert_id();
$sql = "SELECT ordernumber FROM transactions WHERE ordernumber = $lastOrderNumber;";
于 2013-04-17T09:51:13.250 に答える
0

挿入クエリがコードを実行した後に mysql_insert_id() 関数を呼び出す

于 2013-04-17T09:47:09.983 に答える
0

mysql_insert_id 関数を使用するだけで、最後に挿入された ID が得られます。

于 2013-04-17T09:45:55.500 に答える