Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

node-mysql várias instruções em uma consulta


Eu acho que você está usando node-mysql . (mas também deve funcionar para node-mysql2 )

Os documentos diz:

O suporte para várias instruções está desabilitado por motivos de segurança (permite ataques de injeção de SQL se os valores não forem escapados adequadamente).

Consultas de várias declarações


Para usar esse recurso, você deve habilitá-lo para sua conexão:
var connection = mysql.createConnection({multipleStatements: true});

Uma vez ativado, você pode executar consultas com várias instruções separando cada instrução com um ponto e vírgula ; . O resultado será um array para cada instrução.

Exemplo

connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) {
  if (err) throw err;

  // `results` is an array with one element for every statement in the query:
  console.log(results[0]); // [{1: 1}]
  console.log(results[1]); // [{2: 2}]
});

Então, se você ativou o multipleStatements , seu primeiro código deve funcionar.