Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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
Java 在sql查询中将变量用作列_Java_Mysql - Fatal编程技术网

Java 在sql查询中将变量用作列

Java 在sql查询中将变量用作列,java,mysql,Java,Mysql,这是我的密码我试图在此处使用变量而不是列名 但我得到以下例外情况。如何解决此错误? 您不能在准备好的语句中绑定表/列名,通常也不允许这样做。以下是您的代码的工作版本: String query = "UPDATE report SET itemno = ?"; pst = (PreparedStatement) con.prepareStatement(query); pst.setInt(1, dqty); pst.executeUpdate(); 注: 几乎可以肯定,您希望在更新中添加一

这是我的密码我试图在此处使用变量而不是列名

但我得到以下例外情况。如何解决此错误?

您不能在准备好的语句中绑定表/列名,通常也不允许这样做。以下是您的代码的工作版本:

String query = "UPDATE report SET itemno = ?";
pst = (PreparedStatement) con.prepareStatement(query);
pst.setInt(1, dqty);
pst.executeUpdate();
注:

几乎可以肯定,您希望在更新中添加一个
WHERE
子句,否则会影响表中的每条记录。对于准备好的语句,您不必担心转义文字数据。让Java为您处理这个问题


如果您确实需要更新其他表/列组合的能力,那么只需为此创建其他语句即可。“一刀切”适用于7-Eleven,但不适用于JDBC,因为可能会注入SQL。

请将代码和异常以文本形式发布,而不是以图像形式发布,也不要在链接中发布。String query3=“UPDATE report SET”“+r.getItemno()+”=“+dqty+”;pst=(准备好的报表)con.准备好的报表(查询3);pst.executeUpdate();}异常->>com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行“7068-0001-01-F”=0”附近使用的正确语法。这对我来说很有用。String query3=“更新报告集
”+r.getItemno()+”
=?其中日期=”+r.getDate()+“”;pst=(准备好的报表)con.准备好的报表(查询3);pst.setInt(1,dqty);pst.executeUpdate();}@M.B.Nadeeshan它是有效的,但这并不意味着它是理想的。在Java中连接SQL查询在大多数情况下都是一件坏事。谢谢你的澄清。这真的很有价值。