Atualizado: 02/01/2025

Executando Consultas no MySQL - Node.js

Para executar consultas, utiliza-se o método query() no objeto de conexão. A forma mais simples desse método é:

query(sqlString, callback)

Aqui, sqlString é o comando SQL a ser executado, e callback é a função de retorno que, através de seus parâmetros, permite acessar os resultados da execução do comando SQL ou tratar um possível erro.

Por exemplo, para obter todos os dados de uma tabela:

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "usersdb",
  password: "123456"
});

connection.query("SELECT * FROM users", function(err, results, fields) {
  console.log(err);
  console.log(results); // os dados em si
  console.log(fields); // metadados dos campos
});

connection.end();

Nesse caso, o comando SELECT é executado para extrair todos os dados da tabela "users". A função de retorno (callback) recebe três parâmetros. O primeiro parâmetro é o erro, caso tenha ocorrido durante a execução da consulta. O segundo parâmetro, results, contém os dados obtidos pelo comando SELECT, em forma de um array. O terceiro parâmetro, fields, armazena metadados sobre os campos da tabela e informações adicionais.

Vale destacar que, ao executar consultas, a conexão é estabelecida implicitamente. Portanto, não é estritamente necessário chamar o método connect() no objeto de conexão antes de realizar uma consulta.

O mysql2 também oferece o método execute(), que funciona de maneira similar:

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "usersdb",
  password: "123456"
});

connection.execute("SELECT * FROM users", function(err, results, fields) {
  console.log(err);
  console.log(results); // os dados em si
  console.log(fields); // metadados dos campos
});

connection.end();

Parametrização de Consultas

Quando há a necessidade de inserir dados provenientes de fontes externas em uma consulta, é recomendável usar a parametrização para evitar injeções de SQL.

Na parametrização, em vez de inserir os dados diretamente no texto da consulta, utilizam-se placeholders, que são representados por pontos de interrogação. Durante a execução da consulta, esses placeholders são substituídos pelos dados reais. Veja um exemplo de inserção de dados:

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "usersdb2",
  password: "123456"
});

const user = ["Tom", 29];
const sql = "INSERT INTO users(name, age) VALUES(?, ?)";

connection.query(sql, user, function(err, results) {
  if (err) console.log(err);
  else console.log("Dados adicionados");
});

connection.end();

Neste exemplo, os dados são definidos em um array user, que é passado como parâmetro para o método connection.query(). Durante a execução da consulta, esses dados são inseridos nos lugares correspondentes aos pontos de interrogação. Na prática, a consulta executada seria: INSERT INTO users(name, age) VALUES("Tom", 29).

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com