JavaScript, вставьте строку в SQL - PullRequest
0 голосов
/ 10 мая 2019

Я хочу использовать этот запрос в javascript

DELETE FROM temp_result WHERE 1;INSERT INTO 'temp_result' ('ID_Result') VALUES ('4871'),('4869'),('4756'),('4497'),('4296'),('4177'),('40'
),('2970'),('2729'),('2342'),('1221'),('838'),('200119770'),('200081730'),('200124125'),('20012738'),('200127381'),('200127374');'

Мне нужно '' вокруг числа, потому что позже идентификатор будет содержать буквы

Я создаю его так:

 var query1 = "DELETE FROM temp_result WHERE 1;";
    var listid ="";
    for(var i in list){
        listid+="('"+list[i]+"'),"
    }

    var query2 = "INSERT INTO 'temp_result' ('ID_Result') VALUES "+listid.replace(/.$/,";");
    query = connection.escape(query1+query2);

Но в сообщении об ошибке SQL это выглядит так:

'\'DELETE FROM temp_result WHERE 1;INSERT INTO \\\'temp_result\\\' (\\\'ID_Result\\\') VALUES (\\\'4871\\\'),(\\\'4869\\\'),(\\\'4756\\\'),(\\\'4497\\\'),(\\\'4296\\\'),(\\\'4177
\\\'),(\\\'4047\\\'),(\\\'3606\\\'),(\\\'3518\\\'),(\\\'2970\\\'),(\\\'2729\\\'),(\\\'2342\\\'),(\\\'1221\\\'),(\\\'838\\\'),(\\\'200119770\\\'),(\\\'200081730\\\'),(\\\'200124125\\
\'),(\\\'200127385\\\'),(\\\'200127381\\\'),(\\\'200127374\\\');\'' 

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Я понял, это не ВСТАВКА.По какой-то причине он просто не принимает одновременный запрос, хотя я использовал

  multilpleStatements : true
0 голосов
/ 10 мая 2019

Я бы использовал connection.escape () только для экранирования элементов в списке, так как остальная часть запроса безопасна (не содержит кода, введенного пользователем).

 var query1 = "DELETE FROM temp_result WHERE 1;";
    var listid ="";
    for(var i in list){
        listid+="('"+connection.escape(list[i])+"'),"
    }

    var query2 = "INSERT INTO 'temp_result' ('ID_Result') VALUES "+listid.replace(/.$/,";");
    query = query1+query2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...