我在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。
答案 0 :(得分:2)
您的语法已关闭,此
String update = ("DELETE FROM images WHERE imageID = ?, username = ?");
应使用AND
代替,
- 例如
String update = "DELETE FROM images WHERE imageID = ? AND username = ?";