mysql查询返回false,但执行正确

pdsfdshx  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(510)

这个问题在这里已经有答案了

将preparedstatement插入数据库-psql(1个答案)
如何在java语句[duplicate](5个答案)中使用execute()获得true或false
两年前关门了。
我正在使用googleapps脚本,并使用jdbc连接到一个外部数据库。
我有一个user表和一个contracts表,我更改了一些隐私值,但这是我的基本查询。基本上,我有一个要循环的合同号列表,对于每个合同号,执行查询。contracts表和user表共享一个主id,因此我只是尝试更新user表中的一个值,其中users contract id等于该contract编号的contract id。

var contractNumbers = ["123","456","789"];
for (var a in contractNumbers) {
  var stmt = conn.createStatement();  
  var contractNum = contractNumbers[a];
  var query = "UPDATE user INNER JOIN contracts ON user.id_c = contracts.id SET user.quantity = '1' WHERE contracts.number = '" + contractNum + "'";
  var stmt = conn.prepareStatement(query);
  var result = stmt.execute();
}

此查询正在工作,并且正在正确、准确地更改值,但是结果总是返回false。知道我的查询有什么问题吗?它正在工作,但返回false?或者是一个更好的方法来执行这个查询的建议?

gzszwxb4

gzszwxb41#

当您输入数据而不获取数据时,返回 false 医生说:
返回:如果第一个结果是resultset对象,则返回true;如果第一个结果是更新计数或没有结果,则为false。
在你的情况下,这是一个更新,没有结果
此处提供完整文档

r1wp621o

r1wp621o2#

感谢上面的@jsmith,我被指向了正确的方向。正确的执行是:

var result = stmt.executeUpdate(query);

per-无法使用executequery()发出数据操作语句

相关问题