Javascript: выполнение SQL-запроса с динамическим именем столбца - PullRequest
0 голосов
/ 22 марта 2019

У меня есть 4 ресурса, и эти ресурсы можно уменьшить, но каждый раз, когда они уменьшаются, моя функция проверяет, падает ли значение ресурса ниже 0. Если это так, то она вызывает мою функцию setColumnToZero, которая устанавливает значение столбца в 0. Моя проблема в том, что моя функция не работает, когда я пытаюсь динамически обновить столбец (1 функция для 4 ресурсов). Если я вручную обновляю имя столбца, мой код работает, но как я могу заставить это работать динамически

edit: Так что, если я вручную наберу Crop_Inventory вместо? в моем запросе работает

removeCropFromInventory: function(cropAmount){
    return new Promise(function(resolve,reject){
        let sql = "UPDATE resources SET Crop_Inventory = Crop_Inventory - (?) WHERE resources_FK_PlayerId = (?) AND resources_FK_GameId = (?)";
        var value = [cropAmount, global.id, global.gameId];
        db.query(sql, value, function(err,result,fields){
            if(err){
                console.log(err);
            } else{
                crop_inventory = crop_inventory - cropAmount;
                if(crop_inventory < 0){
                    module.exports.setColumnToZero('Crop_Inventory').then(function(crop_inventory){
                        resolve(crop_inventory);
                    });
                } else{
                    resolve(crop_inventory);
                }
            }
        });
    });
}


setColumnToZero: function(Column){
    return new Promise(function(resolve,reject){
        let sql = "UPDATE resources SET (?) = 0 WHERE resources_FK_PlayerId = (?) AND resources_FK_GameId = (?)"; //This is where error occurs
        var value = [Column, global.id, global.gameId];
        db.query(sql, value, function(err,result,fields){
            if(err){
                console.log(err);
            } else{
                crop_inventory = 0
                resolve(crop_inventory);
            }
        });
    }); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...