Ошибка в синтаксисе вашего набора синтаксиса SQL, как ее решить?

#javascript #mysql #node.js #amazon-web-services #node-mysql

#язык JavaScript #mysql #node.js #amazon-веб-сервисы #узел-mysql

Вопрос:

Находясь в лямбда-функции, я пытаюсь выполнить приведенный ниже запрос, но он выдает ошибку ER_PARSE_ERROR:

 {   "errorType": "Error",   "errorMessage": "ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT A.j FROM ...' at line 1",   "trace": [   
 const vandium = require('vandium');  var mysql = require('mysql'); var connection = mysql.createConnection({ multipleStatements: true });  exports.handler = vandium.generic()  .handler((event, context, callback) =gt; {   var connection = mysql.createConnection({  host: 'xjxj',  user: 'xjxj',  password: 'xjxj',  database: 'xjxj'  });  var x = connection.escape(event.x);  var y= connection.escape(event.y);  var z = connection.escape(event.z);  connection.query("SET @" y "=2; SELECT DISTINCT A.j FROM A INNER JOIN B, C WHERE A.j = B.j and C.x= "   x   " and C.y=" y " and C.z= "   z   "", function (error, results, fields) {  if (error) {  connection.destroy();  throw error;  }  else {  console.log(results);  callback(null, results);  }  });  });   

Я также подумал о чем-то вроде: ... "SET @y=2;..." но отрицательный

Я пытаюсь реализовать что-то подобное:

 SET @y := @k :=79;SELECT DISTINCT A.j FROM A INNER JOIN B, C WHERE A.j = B.j and C.x= "   x   " and C.y=" y " and C.z= "   z   "  

Конечно, в первом блоке кода нет буквы «к», но вот примерная идея.

Что пошло не так?

Комментарии:

1. 1) Проверьте, можете ли вы использовать SET в connection.query ; 2) Проверьте, можете ли вы использовать несколько запросов connection.query .

2. Я пытаюсь реализовать что-то в аналогичных строках: полностью составить код, включая выражения в WHERE.

3. Это уязвимо для SQL-инъекции.