0

以下のコードに何か問題がありますか?

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

REGCUSTOMERS テーブルのユーザー名とパスワードの列からデータを取得しようとしています。

日食エラー:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 構文にエラーがあります。near '= ? を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。AND パスワード = ?' 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 に答える