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语法问题。
