当前位置: 首页 > 面试题库 >

mysql准备语句错误:MySQLSyntaxErrorException

尹小云
2023-03-14
问题内容

我使用准备好的语句编写了select语句。每次尝试运行它都会出现此错误。我如何克服这个错误?我的jdbc连接器是mysql-connector-
java-5.1.13-bin.jar。我的代码:

 public Main_add_ad_to getAdDetail(int ad_id) {
    Dbconnection db = new Dbconnection();
    Connection con = db.getConnection();
    ResultSet rs = null;

    PreparedStatement stmt = null;
    Main_add_ad_to detail_to = new Main_add_ad_to();
    try {
    String selectSQL = "SELECT *  FROM ads_tbl where id = ?";

    stmt = con.prepareStatement(selectSQL);
    stmt.setInt(1, ad_id);
    rs = stmt.executeQuery(selectSQL);
    while (rs.next()) {

        detail_to.setCat_ad(rs.getString("cat"));
        detail_to.setType_ad(rs.getString("sale_type"));
        detail_to.setBrand(rs.getString("brand"));
    }catch (SQLException ex) {
        Logger.getLogger(Lands_cls.class.getName()).log(Level.SEVERE, null, ex);
    }
return detail_to;
}

错误代码..

2013年10月1日,下午1:23:23 sanin.lands.model.View_ads_cls getAdDetail

SEVERE: null
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
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

问题答案:

错误在这一行

    rs = stmt.executeQuery(selectSQL);

这样做

    rs = stmt.executeQuery();


 类似资料:
  • 问题内容: 我使用准备好的语句编写了select语句。每次尝试运行时都会出现此错误。我如何克服这个错误?我的jdbc连接器是mysql-connector- java-5.1.13-bin.jar。我的代码: 错误代码.. 2013年10月1日,下午1:23:23 sanin.lands.model.View_ads_cls getAdDetail 问题答案: 错误在这一行 这样做

  • 我正在使用我生成的一个准备好的语句,但在Java抛出的语句上出现了语法错误。然而,当我将PS的toString复制并粘贴到数据库的phpmyadmin中时,它的执行完美无缺。有什么想法会出错吗,我很难理解? 编辑:更改为PS.ExecuteUpdate(查询);还是不起作用。

  • 问题内容: 我已经重写了我的网站php代码,并添加了MySQL存储过程。 在我的本地版本中,一切正常,但是在将网站上传到托管服务器后,我却收到致命错误“准备好的语句需要重新准备”。 有时页面加载,有时加载失败,我看到此错误。那是什么? 更新: 移到VPS服务器后问题不再存在。 感谢帮助。 问题答案: 这是可能的:MySQL错误#42041 他们建议提高的价值。 您可以在MySQL文档中阅读有关重新

  • 问题内容: 这个问题已经在这里有了答案 : 我的PDO声明无效 (1个答案) 2年前关闭。 我正在尝试使用PDO准备好的语句为MySQL数据库上的查询创建正确的错误处理。我希望程序在检测到准备好的语句过程中出现错误时退出。利用PDO准备好的语句过程中的每个步骤都会在失败时返回的事实,我将这种令人讨厌的技巧归纳为: 通过执行以下操作: 两件事情。首先,这是非常冗长而愚蠢的。肯定有更好的办法。显然,我

  • 问题内容: 这个问题已经在这里有了答案 : mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误? (1个答案) 3年前关闭。 我正在努力弄清MySQli,但我对错误报告感到困惑。我正在使用MySQLi’prepare’语句的返回值来检测执行SQL时的错误,如下所示: 但是,prepare语句的返回值是否仅检测SQL语句的前

  • 我读到MySQL不支持服务器端查询计划缓存。所以如果我想使用PreparedStatements来获得性能优势,我能做的就是在JDBC连接中启用语句缓存。因此,根据文档,它将允许缓存每个连接基础上准备好的语句。 与如果MySQL有服务器端查询计划缓存相比,JDBC连接的PreparedStatement缓存的性能增益是什么?因此,如果PreparedStatement确实在物理连接的缓存中找到,这