Javascript,在没有值时使用mysql更新
未设置时,我将更新数据库中的值 我有以下代码:Javascript,在没有值时使用mysql更新,javascript,mysql,Javascript,Mysql,未设置时,我将更新数据库中的值 我有以下代码: items.forEach(function(item,i,arr){ mysqlConnection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \''
items.forEach(function(item,i,arr){
mysqlConnection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \'' + item.market_hash_name + '\'', function (err, row, fields) {});
});
当我放入多于2个具有item.assetid的“Items”(例如:item 1具有=123123,item 2具有=987987)时,所有两个没有任何项的项都会获得相同的assetid值,例如123123或987987
我怎么能做到,他给每件东西一个资产
在此之前,“AssetID”列中没有任何内容我猜您的
WHERE
子句匹配的行太多了。不清楚您使用的是什么库,但是如果您使用的是node mysql
,您可以在回调函数中输出更新的行数:
connection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \'' + item.market_hash_name + '\'', function (err, result) {
if (err) throw err;
console.log('changed ' + result.changedRows + ' rows');
})
查看您的
项目
数组-该数组中的每个项目的资产必须相同。问题可能在此行的上游。@item数组中的pherris是两个具有两个不同AssetID的项。如果我做了“console.log(item.assetid)”,我会变回两个不同的ID。但在数据库中,他将1个assetid设置为2个项……它说:“更改了2行,而不是更改了0行”。我如何使他更改1而不是1?这就是问题所在,您没有在WHERE
子句中匹配要更新的正确行。可能需要将列的ID添加到update语句中。但是如何添加呢?我有几个列:ID、ItemName、Assetid-ItemName可以相同,每个项的Assetid必须更新。资产是不同的,必须是不同的。AssetID在此foreach中更新。ID为1并自动计数当您正在执行更新时,您必须在创建项
数组时选择要更改的行。在创建项数组时,需要在数组中包含ID
列的值,然后在UPDATE
where中可以变成'where ID=\''item.ID\''。我有它!谢谢你的代码。这对我帮助很大!:)我添加了“按资产说明限额1的订单”。有效:)