当前位置: 代码迷 >> Java Web开发 >> jsp查询数据库雷同查询语句得到不同结果
  详细解决方案

jsp查询数据库雷同查询语句得到不同结果

热度:9317   发布时间:2013-02-25 21:13:07.0
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 '
当然没有结果。。。
  相关解决方案