Maison >base de données >tutoriel mysql >Pourquoi mon PreparedStatement génère-t-il une erreur de syntaxe proche de « ? » : un problème Java MySQL

Pourquoi mon PreparedStatement génère-t-il une erreur de syntaxe proche de « ? » : un problème Java MySQL

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 17:32:03441parcourir

Why Does My PreparedStatement Throw a Syntax Error Near

Erreur de syntaxe PreparedStatement : '<' Attendu

Rencontrer « l’erreur de syntaxe PreparedStatement » lors de l’utilisation de Java PreparedStatements peut être frustrant. Si vous rencontrez l'erreur :

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?)' at line 1

avec un code tel que :

    String selectSql1
        = "SELECT `value` FROM `sampling_numbers` WHERE `value` < (?)" ;
    ResultSet rs1 = con.select1(selectSql1,randNum);

c'est parce que vous appelez de manière incorrecte Statement.executeQuery(String) au lieu de PreparedStatement.executeQuery() . Voici comment résoudre ce problème :

    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 prepared PreparedStatement

En modifiant cette ligne, vous exécuterez correctement le PreparedStatement et éviterez "l'erreur de syntaxe PreparedStatement".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn