#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-инъекции.