[問題] SQL顯示指令

看板Web_Design作者 (豆花奶茶)時間13年前 (2011/07/13 16:15), 編輯推噓4(4028)
留言32則, 5人參與, 最新討論串1/1
想請問一下 有沒有什麼SQL指令是可以讓我剛剛輸入的值存到資料庫後再被我抓出來的?! 我的意思是: 我在新增會員的時候,輸入完基本資料,按下送出(傳送在資料庫), 怎樣才能把剛剛輸入的值顯示在畫面上!? 我只能讀取全部的資料,並沒有辦法讀取剛新增的那筆 以下是我的程式碼: out.println("請輸入帳號: <br>"); String UserName = br.readLine(); out.println("請輸入密碼: <br>"); String Password = br.readLine(); out.println("請輸入姓名: <br>"); String Name = br.readLine(); out.println("請輸入E-Mail: <br>"); String Email = br.readLine(); out.println("請輸入生日: <br>"); String Birthday = br.readLine(); String sql = "insert into mytest(UserName, Password, Name, Email, Birthday) values('" +UserName+ "', '" +Password+ "', '" +Name+ "', '" +Email+ "', '" +Birthday+ "')"; stmt.executeUpdate(sql); out.println("<br>新增紀錄<br>"); ResultSet rs = stmt.executeQuery("select * from mytest"); while(rs.next()){ out.println("帳號: " + rs.getString("UserName") + "<br>" + "密碼: " + rs.getString("Password") + "<br>" + "姓名: " + rs.getString("Name") + "<br>" + "E-Mail: " + rs.getString("Email") + "<br>" + "生日: " + rs.getString("Birthday") + "<br>"); } 請各位大大鞭小力一點... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.131.12.63

07/13 16:22, , 1F
你table的pk是哪一個?是輸入的欄位自己記
07/13 16:22, 1F

07/13 16:23, , 2F
自動產生的各家DB撈出上一次變動的pk語法不一樣
07/13 16:23, 2F

07/13 16:30, , 3F
我是用MySQL 5.0.77 我PK是自動產生編號
07/13 16:30, 3F

07/13 16:31, , 4F
No是我的PK會自動產生編號,我把它當作觀察數量使用
07/13 16:31, 4F

07/13 16:55, , 5F
把輸入的值先用變數存起來 再抓出來不就好了@@
07/13 16:55, 5F

07/13 16:56, , 6F
不好意思,可以寫給我看嗎?!
07/13 16:56, 6F

07/13 17:05, , 7F
答案就在你內容中...getstring 就是你輸入的結果..
07/13 17:05, 7F

07/13 17:06, , 8F
我只要新增的那筆,而不是每新增一筆,就顯示所有的資料
07/13 17:06, 8F

07/13 17:08, , 9F
stmt.executeQuery + where user name email pwd 生日
07/13 17:08, 9F

07/13 17:11, , 10F
若不是唯一就group by 不過我覺得這樣很奇怪Orz
07/13 17:11, 10F

07/13 17:11, , 11F
應該如上面大大所說輸入當下丟個變數就好了..
07/13 17:11, 11F

07/13 17:14, , 12F
可是這樣找出來的資料不會是單筆,而是很多筆吧?!
07/13 17:14, 12F

07/13 17:15, , 13F
很多比也都是相同的資料 所以才要group by
07/13 17:15, 13F

07/13 17:15, , 14F
若有最新時間欄位 就取最新時間欄位..
07/13 17:15, 14F

07/13 17:18, , 15F
我上面打錯了 是有時間欄位的話取最新的時間..
07/13 17:18, 15F

07/13 17:19, , 16F
我時間欄位型態是用timestamp
07/13 17:19, 16F

07/13 17:34, , 17F
按下送出後把UserName.Password.Name.Email.Birthday
07/13 17:34, 17F

07/13 17:35, , 18F
這些變數印出來就好了...
07/13 17:35, 18F

07/13 17:38, , 19F
我程式最後面就是把它印出來!! 但是是印全部= ="
07/13 17:38, 19F

07/13 17:40, , 20F
他說的變數 與你說的select * from 不同
07/13 17:40, 20F

07/13 17:40, , 21F
他的意思是說不用去select "直接"把輸入的變數輸出
07/13 17:40, 21F

07/13 17:41, , 22F
後面不要再去資料庫select,你都宣告變數存輸入的值了
07/13 17:41, 22F

07/13 17:42, , 23F
何不就直接印出來呢...
07/13 17:42, 23F

07/13 17:44, , 24F
直接getString?!
07/13 17:44, 24F

07/13 17:51, , 25F
stmt.executeUpdate(sql); 後面接
07/13 17:51, 25F

07/13 17:51, , 26F
out.println("帳號: " + UserName + .......etc
07/13 17:51, 26F

07/13 17:53, , 27F
您可能需要去了解每行的用意才行喔,加油吧 下班去= =
07/13 17:53, 27F

07/13 17:55, , 28F
感謝你!! 我試看看!!
07/13 17:55, 28F

07/16 01:53, , 29F
一點意見 如果多方存取DB 用timestamp不一定確定最新就是
07/16 01:53, 29F

07/16 01:54, , 30F
就是剛剛輸入的. 自動增加的PK也會有類似的問題.
07/16 01:54, 30F

07/16 01:56, , 31F
可以用限定username不可重複 為方法
07/16 01:56, 31F

07/16 01:58, , 32F
這樣可以確認資料是否輸入 又可以把資料select出來
07/16 01:58, 32F
文章代碼(AID): #1E7LGVyu (Web_Design)