我收到了此消息,但我找不到任何错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'where id ='null''附近使用正确的语法
我认为这段代码错了,但事实证明它不是。
ResultSet rs = stmt.executeQuery("select password" +
"from userinfo where id = '" + id + "';");
这是错误文件的完整代码。
private boolean checkLoginInfo(String id, String password) throws ServletException
{
Connection conn = null;
Statement stmt = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/webdb", "root", "1234");
if (conn == null)
throw new Exception("can't connect to database.<BR>");
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select password" +
" from userinfo where id = '" + id + "';");
if (!rs.next())
return false;
String correctPassword = rs.getString("password");
if (password.equals(correctPassword))
return true;
else
return false;
}
答案 0 :(得分:0)
来自的密码和之间存在缺少空间:
select password" + "from userinfo where id = '" + id + "';"
试试这个:
"SELECT password FROM `userinfo` WHERE id = '"+id+"'"
您应进一步阅读:
编辑1:
错误消息告诉我们,您要将id
设置为'null'
(字符串,因为&#39;&#39;),而不是NULL
。如果你的id
期待一个整数,但是你提供一个字符串,它将会中断。