MySQL-Syntaxfehler: „Sie haben einen Fehler in Ihrer SQL-Syntax“ beim Ausführen von PreparedStatement
Beim Ausführen einer Abfrage mit einem PreparedStatement, Benutzer Möglicherweise tritt der Fehler „MySQLSyntaxErrorException near „?““ auf. Dieser Fehler weist auf einen Syntaxfehler in der SQL-Abfrage hin.
In diesem speziellen Problem versucht der Code, die Abfrageparameter durch das „?“ zu ersetzen, aber das PreparedStatement ersetzt diese Platzhalter nicht korrekt.
Das Problem liegt im Aufruf der MethodeexecuteQuery(). Der Code überschreibt die vorbereitete Abfrage mit der ursprünglichen Abfrage, indem er s.executeQuery(query) anstelle von s.executeQuery() aufruft. Zum Ausführen der vorbereiteten Abfrage sollte die argumentlose Methode „executeQuery()“ verwendet werden.
PreparedStatement s = conn.prepareStatement(query); s.setInt(1, intValue); s.setString(2, strValue); rs = s.executeQuery(); // Correct
Darüber hinaus kann es sein, dass der Code aufgrund nicht geschlossener Verbindungen, Anweisungen und Ergebnismengen Ressourcen verliert. Ressourcen sollten in einem finalen Block geschlossen werden, um eine Erschöpfung der Ressourcen zu verhindern.
try { ... } finally { if (rs != null) rs.close(); if (s != null) s.close(); if (conn != null) conn.close(); }
Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei PreparedStatement in Java einen „MySQL-Syntaxfehler in der Nähe von „?''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!