Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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)更新MySQL中的多个列?_Java_Mysql_Syntax - Fatal编程技术网

如何(通过Java)更新MySQL中的多个列?

如何(通过Java)更新MySQL中的多个列?,java,mysql,syntax,Java,Mysql,Syntax,这只是我的一段代码: Sql = "update budgetreport" + " set sales="+salesText.getText()+ " where quarter="+ qTracker+ " set cogs="+cogsText.getText()+ " where quarter="+ qTracker; try {

这只是我的一段代码:

Sql = "update budgetreport" +
                " set sales="+salesText.getText()+
                " where quarter="+ qTracker+
                " set cogs="+cogsText.getText()+
                " where quarter="+ qTracker;
        try {
            myStmt.executeUpdate(Sql);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
我的问题是,它说有一个SQL语法。我只运行了第一部分:

Sql = "update budgetreport" +
                " set sales="+salesText.getText()+
                " where quarter="+ qTracker;
        try {
            myStmt.executeUpdate(Sql);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
它运行良好。但我不知道如何才能使我的第一段代码发挥作用。感谢您花时间阅读/回答:)! ……试试这个:

Sql = "update budgetreport" +
      " set sales="+salesText.getText()+
      ", cogs="+cogsText.getText()+
      " where quarter="+ qTracker;
请注意SQL注入攻击和错误,您不应使用未检查的文本框内容进行连接。

尝试以下操作:

Sql = "update budgetreport" +
      " set sales="+salesText.getText()+
      ", cogs="+cogsText.getText()+
      " where quarter="+ qTracker;
注意SQL注入攻击和错误,您不应该使用未经检查的文本框内容进行连接。

使用。这样安全多了

String sql = "update budgetreport set sales=? where quarter=?";

PreparedStatement statement = con.prepareStatement(sql);

statement.setString(1, salesText.getText());
statement.setString(2, qTracker.toString());

statement.executeUpdate();
使用一个。这样安全多了

String sql = "update budgetreport set sales=? where quarter=?";

PreparedStatement statement = con.prepareStatement(sql);

statement.setString(1, salesText.getText());
statement.setString(2, qTracker.toString());

statement.executeUpdate();

每次更新只允许一个SET关键字

String sql = "update budgetreport" +
                " set sales=?, cogs=?" + 
                " where quarter=?";

PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, salesText.getText());
...
preparedStatement.executeUpdate();            

每次更新只允许一个SET关键字

String sql = "update budgetreport" +
                " set sales=?, cogs=?" + 
                " where quarter=?";

PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, salesText.getText());
...
preparedStatement.executeUpdate();            

您可能应该从这里开始:因为您的SQL语法不正确。试一试

update budgetreport set sales=?,cogs=? where quarter=?
以上应是一份准备好的声明。见:


或者,您可以通过使用一些轻量级的框架来简化您的生活,例如:它抽象了PreparedStatements并使您的代码更具可读性。

您可能应该从这里开始:因为您的SQL语法不正确。试一试

update budgetreport set sales=?,cogs=? where quarter=?
以上应是一份准备好的声明。见:


或者,您可以通过使用一些轻量级的框架来简化您的生活,例如:它抽象了PreparedStatements并使您的代码更具可读性。

更新查询的语法不正确,因此您需要更改它>

更新表

设置column1=expression1

column2 = expression2,
....
在什么情况下

比如说

Sql=
更新预算报告”+
“set sales=“+salesText.getText()+
“,cogs=“+cogsText.getText()+

“where quarter=“+qTracker;”

更新查询的语法不正确,因此您需要更改它>

更新表

设置column1=expression1

column2 = expression2,
....
在什么情况下

比如说

Sql=
更新预算报告”+
“set sales=“+salesText.getText()+
“,cogs=“+cogsText.getText()+

“where quarter=“+qTracker;”

我对MySql了解不多,但似乎应该是两种不同的
update
语句:一种用于
sales
,另一种用于
cogs
。此外,您还想使用preparedStatements,因为如果问题得到解决,以这种方式构建SQL最终会让您走上一条黑暗的道路,请将其中一个答案标记为已接受。我对MySql了解不多,但它似乎应该是两个不同的
update
语句:一个用于
sales
,另一个用于
cogs
。此外,您还希望使用preparedStatements,因为如果您的问题得到解决,以这种方式构建SQL将最终导致您走上一条黑暗的道路,请把其中一个答案标记为已接受。哎呀,我现在真的觉得自己像个白痴。我所缺少的只是一个逗号!无论如何,谢谢你的回复,我真的很感激:)哎呀,我现在真的觉得自己像个白痴。我所缺少的只是一个逗号!无论如何,感谢您的回复,我真的很感激:)PreparedStatement对象有什么帮助?只是好奇,谢谢!它可以防止攻击,还可以引用字符typesOk,我不知道。我一定会用的,“PreparedStament”对象有什么帮助?只是好奇,谢谢!它可以防止攻击,还可以引用字符typesOk,我不知道。我一定会用的。