Sedbol
@Sedbol

Как вставить запись или обновить?

Как сделать INSERT INTO ON DUPLICATE KEY UPDATE ?

function userWin(val) {
    return new Promise(function (resolve, reject) {       
        const win="UPDATE `user` SET `monets`= monets+? ,`exp`=exp+? WHERE `uid`=?";
        const par = [val.gold,val.xp,val.user];
        connection.query(win, par,
            function(err, results) {
                if (err) reject(err);
                resolve(results);
            });
        connection.end();
        //console.info(val)
    })
}
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
@historydev
Острая аллергия на анимешников
Запрос какой-то странный)Ребус для наркомана)

function userWin(val) {

    return new Promise(function (resolve, reject) {  

    	const par = [val.gold,val.xp,val.user];   

        const win = `UPDATE user SET monets = ${par[0]},exp = ${par[1]} WHERE uid = ${par[2]}`;

        connection.query(win, (err, results) => {

                if (err) reject(err);

                resolve(results);

        });

        connection.end();

    }).then(r => {
    	console.log(r)
    })

}


А правильно будет так:

function userWin(val) {

    return new Promise(function (resolve, reject) {  

    	const par = [val.gold,val.xp,val.user];   

    	let monets = par[0],
    		exp = par[1];

        const win = `UPDATE user SET ? WHERE uid = ${par[2]}`;

        connection.query(win, {monets,exp}, (err, results) => {

                if (err) reject(err);

                resolve(results);

        });

        connection.end();

    }).then(r => {
    	console.log(r)
    })

}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы