当前位置: 首页 > 知识库问答 >
问题:

为什么预处理语句会出现语法错误?[重复]

丁阎宝
2023-03-14

我已经写了一个准备好的语句,但它给出了一个语法错误?。我不明白出了什么问题。它应该传递一个电影名称,并作为该电影的导演获得结果

stmt=getConnection().createStatement();
        String sql="SELECT directors FROM moviedata WHERE moviedata.title = ?";
        PreparedStatement preparedStatement=conn.prepareStatement(sql);
        preparedStatement.setString(1,movieName);
        rs=preparedStatement.executeQuery(sql);

共有2个答案

饶滨海
2023-03-14

问题不在于使用Preparedstatement

解鸿运
2023-03-14

问题在于:

rs=preparedStatement.executeQuery(sql);

您不应该将SQLString传递给0014 teQuery(),因为准备好的语句已经包含SQLString,其中占位符被movieName的值替换。

使用:

rs=preparedStatement.executeQuery();
 类似资料:
  • 问题内容: 我已经编写了一条准备好的语句,但是它在?处给出了语法错误。我无法理解到底出了什么问题,它应该传递电影名称并作为该电影的导演获得结果 问题答案: 问题在这里: 您不应该将SQL传递给,因为准备好的语句已经包含SQL ,且占位符由的值代替。 用:

  • 问题内容: 这个问题已经在这里有了答案 : prepareStatement语法错误 (2个答案) 2年前关闭。 我已经编写了一条准备好的语句,但是它在?处给出了语法错误。我无法理解到底出了什么问题,它应该传递电影名称并作为该电影的导演获得结果 问题答案: 问题在这里: 您不应该将SQL传递给,因为已准备好的语句已经包含SQL ,且占位符由的值代替。 使用:

  • 如果数组中的前4个元素之一是9,则该方法应该返回true。数组长度可能小于4。在我的方法中,由于某种原因,我不断得到“缺少返回语句错误”。

  • 问题内容: 好的,我有一个非常简单的mysql数据库,但是当我尝试通过mysql-admin运行此查询时,出现奇怪的错误 INSERT INTO自定义报告(研究,类型,模式,选择,描述)VALUES(‘1’,‘2’,‘3’,‘4’,‘5’); 错误: 1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以便在“选择,描述” VALUES(“ 1”,“ 2”,“

  • 本文介绍了如何使用 DM 来处理出错的 SQL 语句。 目前,TiDB 并不完全兼容所有的 MySQL 语法(详见 TiDB 已支持的 DDL 语句)。当使用 DM 从 MySQL 迁移数据到 TiDB 时,如果 TiDB 不支持对应的 SQL 语句,可能会造成错误并中断迁移任务。在这种情况下,DM 提供 handle-error 命令来恢复迁移。 使用限制 如果业务不能接受下游 TiDB 跳过异

  • 错误处理 有些方法通通过参数返回 error 的引用,使用这样的方法时应当检查方法的返回值,而非 error 的引用。 推荐: NSError *error = nil; if (![self trySomethingWithError:&error]) { // Handle Error } 此外,一些苹果的 API 在成功的情况下会对 error 参数(如果它非 NULL)写入垃圾值(