Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与和一起使用WHERE时发生Java MySQL更新错误_Java_Mysql - Fatal编程技术网

与和一起使用WHERE时发生Java MySQL更新错误

与和一起使用WHERE时发生Java MySQL更新错误,java,mysql,Java,Mysql,我正在尝试更新MySQL中的一个条目,该表的结构是table_排名ip文本、field文本、rank double。其中ip是用户的ip地址,field是正在排序的对象,rank是字段的数字排名。我的声明是: //String for query String query = "UPDATE "+catagory+"_rankings SET rank = ? WHERE ip = ? AND field = ? )"; PreparedStatement ps = conn.prepareSt

我正在尝试更新MySQL中的一个条目,该表的结构是table_排名ip文本、field文本、rank double。其中ip是用户的ip地址,field是正在排序的对象,rank是字段的数字排名。我的声明是:

//String for query
String query = "UPDATE "+catagory+"_rankings SET rank = ? WHERE ip = ? AND field = ? )";
PreparedStatement ps = conn.prepareStatement(query);
//fill ? variables
ps.setDouble(1, r[i]);
ps.setString(2, user);
ps.setString(3, s[i]);

ps.executeUpdate();
在该代码中,分类是指给定的表,例如棒球排名或篮球排名。我收到的错误是:

SQLException: 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
SQLState: 42000
VendorError: 1064

我不能在UPDATE语句中使用WHERE和AND吗?我也很好奇我的更新是否受到SQL注入攻击,因为我使用的是catagory+\u排名。我试着用一个?变量,但它会导致另一个错误。

您添加了一个额外的“”,或者可以说,您错过了一个

试一试


这太气人了,我已经看了好几个小时了。你只有一个结束语parentheses@TimBiegeleisen我认为他做不到。不是表名。@DawoodibnKareem为什么不呢?我很好奇?这似乎是正确的,当我用准备好的语句替换连接时,我得到了一个错误。@TimBiegeleisen您必须询问JDBC的设计者为什么不能使用参数作为表名。我不知道。我只是相当肯定它不起作用。
String query = "UPDATE "+catagory+"_rankings SET rank = ? WHERE ip = ? AND field = ? ";