質問: 非常に素朴な疑問なのですが、この質問をした直後、個別の質問ページを遷移して 私が入力した内容がおそらくDBに格納されるとともに、出力されます。実際に遷移後のページの アドレスを見ると固有のアドレスが割り当てられているものと伺えます。 例えばPHPやMYSQLを使用している場合、 1)データベースに情報を格納 2)header('Location:XXX')でページの遷移 3)遷移後のページで入力されたばかりの値をMYSQL上の一意のidから出力 という流れであるとすれば、どのようにして格納されたばかりのidを取得しているのでしょうか? 例えば すぐにqueryでwhere numb=100のidを取得しても、他と重複している可能性もありますし、 timestampを利用して最新のレコードを取得するのも、複数投稿があれば、100%そのレコードが指定されるかを保証してくれるものではないと思います。 そもそも全く異なるロジックなのかもしれませんが、このように格納直後のidを取得して表示する場合と 全く違う方法を推奨する場合はそれぞれアドバイスをいただけますでしょうか? 目的は 1.質問する > 2.DB値が格納される > 3.遷移後のページで直ぐ質問した内容が出力される 問題は 1.2は連続しているが、3.でページが遷移するため1.2の情報を出力するために紐付ける術が思い浮かばないということになります。 ``` if(true){ //..省略 $sql ='INSERT INTO table (numb) values (100)';//idは一意でauto increment //..省略 header('Location:http://xxxxxxxx/id')//仮に上記aiで1が割り当てられて場合、どうやってid=1を取得してheader('Location:http://xxxxxxxx/id=1')のように格納したばかりの情報を出力するページに遷移させれば良いのかアイデアが思い浮かびません。。 } ```
回答: lastinsertid を使うと簡単かつ確実に実装できます。 参考になる質問