当前位置: 代码迷 >> J2EE >> You have an error in your SQL syntax 找了一晚上不知道错哪了
  详细解决方案

You have an error in your SQL syntax 找了一晚上不知道错哪了

热度:45   发布时间:2016-04-17 23:20:23.0
You have an error in your SQL syntax 找了一晚上不知道哪里错了
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1。

错误代码是这样的:
public int registerCheck(Connection con,User user) throws Exception{
String sql = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
//用户名
sql="select * from user where userId=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getUserId());
rs = pstmt.executeQuery(sql);
if(rs.next())
return 1;
}

就是rs = pstmt.executeQuery(sql);这里抛出异常。这段程序是用来检测帐号是否已经注册过的。比如我输入的东西是帐号是'ab1234' 表里没有那么应该rs = null. rs不等于null时就返回1 。
我调试检查了好多遍,pstmt里的语句为select * from user where userId='ab123456'
我单独去phpadmin里运行都没有错。不知道为什么这里一直抛出问题。
已经用过滤器把servlet里的编码都改成UTF-8
表结构是:


求各位大神帮帮忙啊!感激不尽!
------解决思路----------------------
user  是关键字吧?改表名
然后rs没关闭,PreparedStatement也没关闭
------解决思路----------------------
放到sql  环境中执行下看看。 
------解决思路----------------------
SQL语法问题。
  相关解决方案