在SQL

时间:2017-09-24 02:35:27

标签: java mysql jdbc

我在SQL中从表中删除行时遇到问题。架构的名称是' imageusers'。内部' imageusers'有一张名为' images'它有三列:imageID,用户名和图像,但我会忽略图像列,因为我可以删除该行而不为该信息做好准备。

我的代码:

myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/imageusers?autoReconnect=true&useSSL=false&relaxAutoCommit=true", "user", "password");

String update =  ("DELETE FROM images WHERE imageID = ?, username = ?");


PreparedStatement preparedStatement = myConn.prepareStatement(update);
preparedStatement.setString(1, "image name");
preparedStatement.setString(2, "username");

preparedStatement.executeUpdate();

我已经仔细检查了一切。 myConn连接有效。图像名称和用户名字符串有效并存在于sql表中。

但是当我尝试运行它时,我收到以下错误:

  

" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有   SQL语法中的错误;查看与您的手册相对应的手册   MySQL服务器版本的正确语法使用在' WHERE imageID =附近   '图片名称',用户名='用户名''在第1行。

我在线查看,这是从JDBC中删除sql的正确方法,不是吗?我看到的每个例子都是这样的。我正在运行MySQL Workbench。

1 个答案:

答案 0 :(得分:2)

您的语法已关闭,此

String update =  ("DELETE FROM images WHERE imageID = ?, username = ?");

应使用AND代替, - 例如

String update =  "DELETE FROM images WHERE imageID = ? AND username = ?";