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);
});