Node.js MySQL Dove


Seleziona Con un filtro

Quando si selezionano record da una tabella, è possibile filtrare la selezione utilizzando l'istruzione "WHERE":

Esempio

Seleziona i record con l'indirizzo "Park Lane 38":

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address = 'Park Lane 38'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Salva il codice sopra in un file chiamato "demo_db_where.js" ed esegui il file:

Esegui "demo_db_where.js"

C:\Users\Your Name>node demo_db_where.js

Che ti darà questo risultato:

[
  { id: 11, name: 'Ben', address: 'Park Lane 38'}
]


Caratteri jolly

Puoi anche selezionare i record che iniziano, includono o terminano con una determinata lettera o frase.

Utilizza il carattere jolly '%' per rappresentare zero, uno o più caratteri:

Esempio

Seleziona i record in cui l'indirizzo inizia con la lettera "S":

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address LIKE 'S%'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Salva il codice sopra in un file chiamato "demo_db_where_s.js" ed esegui il file:

Esegui "demo_db_where_s.js"

C:\Users\Your Name>node demo_db_where_s.js

Che ti darà questo risultato:

[
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'}
]

Valori di query di escape

Quando i valori della query sono variabili fornite dall'utente, è necessario eseguire l'escape dei valori.

Questo serve a prevenire le iniezioni SQL, che è una tecnica di hacking Web comune per distruggere o utilizzare in modo improprio il database.

Il modulo MySQL ha metodi per sfuggire ai valori delle query:

Esempio

Esci dai valori della query usando il mysql.escape() metodo:

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ' + mysql.escape(adr);
con.query(sql, function (err, result) {
  if (err) throw err;
  console.log(result);
});

Puoi anche usare a ?come segnaposto per i valori di cui vuoi eseguire l'escape.

In questo caso, la variabile viene inviata come secondo parametro nel metodo query():

Esempio

Esci dai valori della query usando il ? metodo segnaposto:

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ?';
con.query(sql, [adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});

Se hai più segnaposto, l'array contiene più valori, in quest'ordine:

Esempio

Più segnaposto:

var name = 'Amy';
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE name = ? OR address = ?';
con.query(sql, [name, adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});