@expeerd

Почему странно ведет себя mysql+node.js?

По непонятной причине в связке node.js и mysql не работает этот код:
var sql = 'DELETE FROM `test` WHERE id = "'+results[0]['id']+'"';
connection.query(sql);

При этом, если я вывожу в лог в консоль итоговый запрос, руками его копирую в phpmyadmin, собственно выполняю, то все работает. Что с этим делать?
mysql этот: https://github.com/felixge/node-mysql/, все работает на локолхосте, без этих двух строк все окей, вот кусок поболие:
connection.query('SELECT * FROM `test` WHERE `hold` = "1" AND `status` = "0"', function(err, results) {
    
         if (err) throw err; 
         if (results[0]['botStop'] == '1') {
       	   clearInterval(interval);
           console.log('stopped')
         }
         else {
           var id = results[0]['id'];
           var sql = 'DELETE FROM `test` WHERE id = "'+results[0]['id']+'"';
           console.log(sql);
           connection.query(sql);
           console.log('trade '+id+' started');
         }
        });
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Потому, что нет функции, в которую вернется результат работы запроса, Вы скажете, какой результат у DELETE? А я Вам отвечу, что результат этот предусмотрен у connection.query и даже DELETE может вернуть ошибку, а если некуда ее вернуть, то нарушен формат вызова функции, она имеет полное право не работать. Кроме того, ради Аллаха, не клейте SQL строками.
var sql = 'DELETE FROM test WHERE id = ?';
connection.query(sql, [results[0]['id']], function (err) {
  if (err) console.log('Error query');
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
edli007
@edli007
full stack, team lead
А вы про инъекции слышали?

Сложно сказать почему не работает с такого маленького кусочка кода, даже не зная какую библиотеку вы использовали для мускула.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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