看板 java 關於我們 聯絡資訊
※ 引述《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)