Ошибка синтаксиса PreparedStatement с MySQL [duplicate]

Одиночные кавычки должны использоваться для строковых значений, например, в списке VALUES ().

Backticks обычно используются для указания идентификатора, а также могут быть безопасны из-за случайного использования зарезервированных ключевых слов.

В сочетании PHP и MySQL двойные кавычки и одинарные кавычки значительно упрощают время записи запросов.

6
задан drewmoore 2 May 2014 в 04:15
поделиться

2 ответа

Решение вашей проблемы на самом деле очень просто, вы вызываете Statement.executeQuery (String) , когда вы хотите вызвать PreparedStatement.executeQuery () -

this.stmt = con.prepareStatement(sql); // Prepares the Statement.
stmt.setInt(1, randNum);               // Binds the parameter.
// return this.stmt.executeQuery(sql); // calls Statement#executeQuery
return this.stmt.executeQuery();       // calls your set-up PreparedStatement
14
ответ дан Elliott Frisch 26 August 2018 в 10:48
поделиться
public ResultSet select1(String sql, int randNum) {
    try {
        this.stmt = con.prepareStatement(sql);
        stmt.setInt(1, randNum);
        return this.stmt.executeQuery();
    } catch (SQLException e) {
        e.printStackTrace();
        return null;
    }
}

для справки см. ниже код

PreparedStatement statement =  con.prepareStatement("SELECT EMP_ID,EMP_PWD FROM employee " +
                    "WHERE EMP_ID = '"+param1+"'");
            ResultSet result = statement.executeQuery();
0
ответ дан Boopathi 26 August 2018 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: