jsp查询数据库相同查询语句得到不同结果
代码如下:
<body>
<%
String server="localhost";
String dbname="test";
String user="root";
String password="";
String port="3306";
String name="wang",pass="wang";
String dburl="jdbc:mysql://"+server+":"+port+"/"+dbname+"?"+user+"&"+password;
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection con=DriverManager.getConnection(dburl);
Statement state=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet result=state.executeQuery("select * from info where name= ' " +name+" 'and password= ' " +pass +" ' ");
//ResultSet result_1=state.executeQuery("select * from info where name='wang' and password='wang' ");
%>
<%=result.next() %>
<%ResultSet result_1=state.executeQuery("select * from info where name='wang' and password='wang' ");%>
<%=result_1.next() %>
<%
}catch(Exception e){} %>
<br>
</body>
</html>
数据库是mysql,数据表info里面有数据values(name='wang',password='wang'),使用的是tomcat7.0,myecplise,结果如下:
false true
希望技术流给我解释一下。
------解决方案--------------------
' " +name+" '
'和"之间有空格, pass类似。
这样使得你查的变成 name=" wang "了。
所以查不到。
------解决方案--------------------
ResultSet result=state.executeQuery("select * from info where name= '" +name+"'and password= '" +pass +"' ");
单引号和双引号之间不能有空格。。。。
否则就变成select * from info where name=' wang ' and password=' wang '
当然没有结果。。。