サイトの注文を含むデータを mysql データベースに挿入したいと考えています。
したがって、ユーザー名と自動インクリメント注文番号をデータベースに保存します。
問題は、注文番号を再度抽出する方法です。
私はこれを試しました:
SELECT ordernumber FROM transactions WHERE.....
これをどのように仕上げますか?
サイトの注文を含むデータを mysql データベースに挿入したいと考えています。
したがって、ユーザー名と自動インクリメント注文番号をデータベースに保存します。
問題は、注文番号を再度抽出する方法です。
私はこれを試しました:
SELECT ordernumber FROM transactions WHERE.....
これをどのように仕上げますか?
あなたが使用することができます
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;
別の方法は、クエリを実行することです
select max(ordernumber) as lastordernumber from transactions;
ここで、lastordernumber は目的の値です。
データベースにデータを挿入するために使用している方法によって異なります。
mysql_* 関数の場合、mysql_insert_id() 関数を使用できます。
PDO の使用と mysqli_* については、次の回答を参照してください。準備されたステートメントを使用していますか?
LAST_INSERT_ID() または mysql_insert_id も使用できます
$lastOrderNumber = mysql_insert_id();
$sql = "SELECT ordernumber FROM transactions WHERE ordernumber = $lastOrderNumber;";
挿入クエリがコードを実行した後に mysql_insert_id() 関数を呼び出す
mysql_insert_id 関数を使用するだけで、最後に挿入された ID が得られます。