2017-09-24 6 views
-3

SQLのテーブルから行を削除する際に問題があります。スキーマの名前は「imageusers」です。 'imageusers'の内部には、imageID、username、imageの3つのカラムを持つ 'images'という名前のテーブルがありますが、imageカラムを無視していますので、その情報を準備しないで行を削除できます。SQLのテーブルから行を削除できない

マイコード:

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: 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 'WHERE imageID = 'image name', username = 'username'' at line 1.

私はオンラインを見て、これはJDBCでSQLから行を削除する正しい方法ですが、それにはないのですか?私が見たすべての例は、このようにしました。私はMySQL Workbenchを実行しています。

+3

ようにあなたが使用する必要がある 'と' の代わりにwhere句にカンマの:IMAGEID =?とusername =? – user2023608

答えて

2

あなたの構文がオフになっている、この

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

,の代わりにANDを使用する必要があります -

String update = "DELETE FROM images WHERE imageID = ? AND username = ?"; 
関連する問題