作者ruwa (空气般的存在)
看板java
标题Re: [JSP ] 分页传SQL语法的问题
时间Wed Jul 26 21:34:45 2006
※ 引述《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)