作者PsMonkey (痞子軍團團長)
看板java
標題Re: [問題] JSP讀取資料表 stmt.executeUpdate出問題
時間Thu Jun 6 10:53:35 2013
說實在的,我很難以(一般人認為)不酸的語氣回這篇
※ 引述《leo1234 (Leo)》之銘言:
: try{
: //定義驅動程式與資料來源之間的連結
: Class.forName("com.mysql.jdbc.Driver").newInstance();
: //建立一個聯結物件
: conn = DriverManager.getConnection(url,user,pass);
: //建立Statement物件
: stmt = conn.createStatement();
: }catch(SQLException sqle){
: out.println("SQL Exception : " + sqle);
: }
: }
有縮排的程式會出現兩個右括號在同一行... 很好很好
: //建立查詢並產生rs的資料表
: //String sql = "select * from access_log"; //<=原本這樣可以跑
: String sql = "select * from vulnerable_list";
: //我只改了這行 去查詢vulnerable_list資料表,下面line 333就出現問題
重點不是你用了哪個 table
: ======這邊省略了藉由演算法產生了一個字串 存在 newrule 裡=====
: System.out.println("rule\t"+newrule);
: String newruletest = "INSERT INTO rule(newrule) VALUES('"+newrule+"')";
: //我要將它(newrule)存到rule資料表裡的newrule欄位
你沒有說 newrule 到底跟 vulnerable_list 有什麼關係
也許就是你從那個 table 取出 name 跟 num 的值去作運算
但是你沒有明講,我們不會知道、也不會亂猜
不然我就要順便懷疑你是吃了太多毒澱粉才會寫出這樣的程式
你都知道錯誤是在執行 newreultest 這個 sql 指令了
那為甚麼沒有順便貼出來這個 SQL 指令的實際內容?
那為甚麼沒有先把這段 SQL 指令丟去 DBMS 跑跑看看有沒有出問題?
說不定你自己的那個什麼 newrule 演算法
在某些值之下自動滿足 sql injection 的條件
但是你沒有提供資訊,我們不會知道,更不可能提供任何協助
或著我換個方式講
如果按照你說的,用 access_log 的值可以跑
那就表示你的程式碼沒有問題,結案,以上!
: ======> Line333---- stmt.executeUpdate(newruletest);<========
最後,請不要把程式碼用這種方式標記來
你的文章排版已經夠亂夠難看了
還把程式碼弄的跟文章內文沒什麼兩樣
這實在讓人很不想仔細看(我是版主,我只好仔細看 [淚目])
: //剛剛說的改成讀取別的資料表這行就出現ERROR
: //這行註解掉後上面就印的出來(out.print("字串" + name + "參數" + num + "<br>");)
: //可是就無法執行我後面要做的:新增rule資料表了(INSERT INTO rule(newrule))
: Statement stmt2 = conn.createStatement();
: //rs = stmt2.executeQuery(sql);
: //stmt2.executeUpdate(newruletest);
: fout.close();
: out.println("新規則:"+newrule);
: %>
: </body>
: </html>
--
錢鍾書:
說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.25.146
推 leo1234:= =抱歉 我已經盡量想辦法表達和排版了~可能還是不夠好 @@ 06/06 11:48
→ leo1234:我單純想問讀取和寫入資料表的問題 雖然沒幫到~還是謝 06/06 11:52
推 cuteclare:...原po還是沒搞懂orz 06/06 12:50
→ leo1234:???我知道是我自己講不夠詳細阿~我有想到其他方法解決了@@ 06/06 13:21
→ PsMonkey:唉... 我的確不是高手... [走向窗邊遠目] 06/06 13:31
→ rukawa0328:既然知道333行有問題,那請先try catch(e) 333行 06/06 14:23
→ rukawa0328:然後記得 e.printStackTrace(); 不然......... 06/06 14:25
→ rukawa0328:你只貼了HTTP 500的訊息,你要的是通靈師,不是高手... 06/06 14:28