Re: [JSP ] 分頁傳SQL語法的問題
※ 引述《happychung (嗯~好好想想XD)》之銘言:
: 他會顯示
: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]
: 查詢運算式 'stdno LIKE' 中的 語法錯誤 (少了運算元)。
: //-----------------------------------
: ResultSet rs = stmt.executeQuery(sql);
: //分頁部份
: if ( pageNo > 1 ) // 有上一頁
: out.print("| <a href='browse_test.jsp?Page="+(pageNo-1)+
: "&Sql="+sql"'>上一頁</a> |");
: if ( pageNo < totalPages ) // 有下一頁
: out.print("| <a href='browse_test.jsp?Page="+(pageNo+1)+
: "&Sql="+sql+"'>下一頁</a> |");
: //-----------------------------------
我想,問題應該是出在
out.print("| <a href='browse_test.jsp?Page="+(pageNo-1)+
"&Sql="+sql"'>上一頁</a> |");
這一行程式!!
因為你使用的是HTTP GET的方式傳SQL語法字串
所以再傳SQL參數的時候,導致單引號判讀錯誤...
用實例講清楚一點好了...
假設現在你傳入的參數是
sql=SELECT * FROM students WHERE stdno LIKE '%93%'
pageNo = 3
那麼帶入那行out.print()裡面就會變成
| <a href='browse_test.jsp?Page=2&
Sql=SELECT * FROM students WHERE stdno LIKE '%93%''>上一頁</a> |
有沒有看出什麼端倪來??
就是其實
sql抓到的參數為
SELECT * FROM students WHERE stdno LIKE
只有這樣而已....
請使用跳脫字元隔離字串內的單引號....
或者使用POST的方式傳SQL語法字串吧!!
以上,希望對你有幫助!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.18.208
※ 編輯: ruwa 來自: 61.230.18.208 (07/26 21:41)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章
2
7