0

下面的代码有什么问题吗?

String sql = "SELECT username, password FROM REGCUSTOMERS" + "WHERE username = ? AND password = ?";

我正在尝试从 REGCUSTOMERS 表的用户名和密码列中获取数据。

日食错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '= 附近使用的正确语法?和密码=?在第 1 行

 private boolean isAuthenticated(String userid, String password) {

    // JDBC logic to verify from database.

    try {
        Class.forName(driverName);
        Connection conn = null;
        PreparedStatement st = null;
        String sql = "SELECT username, password FROM REGCUSTOMERS" + "WHERE username = ? AND password = ?";

        conn = DriverManager.getConnection(databaseURL, USERNAME, PASSWORD);

        st = conn.prepareStatement(sql);
        ResultSet rs = st.executeQuery(sql);

        if (rs.getString("username") != userid && rs.getString("password") != password) {

            return false;
        }
        rs.close();
        st.close();
        conn.close();

    } catch (Exception e) {
        e.printStackTrace();
    } 
    return true;

}
4

2 回答 2

2

REGCUSTOMERS 和 WHERE 之间没有空格。添加空间,你应该没问题:

    String sql = "SELECT username, password FROM REGCUSTOMERS " + "WHERE username = ? AND password = ?";
于 2013-01-29T16:37:03.667 回答
1

这部分:

... FROM REGCUSTOMERS" + "WHERE username ...

将产生以下 SQL:

FROM REGCUSTOMERSWHERE

那当然是错误的。

+那里没有意义,但如果你想要它,你至少在一侧需要一个空间

"... FROM REGCUSTOMERS " + "WHERE username ..."
于 2013-01-29T16:37:19.417 回答