Node.js MySQL Gdzie
Wybierz z filtrem
Wybierając rekordy z tabeli, można filtrować wybór za pomocą instrukcji „WHERE”:
Przykład
Wybierz rekord(y) o adresie „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);
});
});
Zapisz powyższy kod w pliku o nazwie „demo_db_where.js” i uruchom plik:
Uruchom „demo_db_where.js”
C:\Users\Your Name>node demo_db_where.js
Co da ci ten wynik:
[
{ id: 11, name: 'Ben', address: 'Park Lane 38'}
]
Znaki wieloznaczne
Możesz także wybrać rekordy, które zaczynają się, zawierają lub kończą się daną literą lub frazą.
Użyj symbolu wieloznacznego „%”, aby przedstawić zero, jeden lub wiele znaków:
Przykład
Wybierz rekordy, których adres zaczyna się na literę „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);
});
});
Zapisz powyższy kod w pliku o nazwie „demo_db_where_s.js” i uruchom plik:
Uruchom „demo_db_where_s.js”
C:\Users\Your Name>node demo_db_where_s.js
Co da ci ten wynik:
[
{ id: 8, name: 'Richard',
address: 'Sky st 331'},
{ id: 14, name: 'Viola', address: 'Sideway
1633'}
]
Ucieczka wartości zapytania
Jeśli wartości zapytania są zmiennymi dostarczonymi przez użytkownika, należy je zmienić.
Ma to na celu zapobieganie wstrzykiwaniu SQL, które jest powszechną techniką hakerską w celu zniszczenia lub niewłaściwego wykorzystania bazy danych.
Moduł MySQL posiada metody ucieczki wartości zapytań:
Przykład
Ucieczka wartości zapytania przy użyciu mysql.escape()
metody:
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);
});
Możesz również użyć ?
symbolu zastępczego dla wartości, które chcesz zmienić.
W tym przypadku zmienna jest wysyłana jako drugi parametr w metodzie query():
Przykład
Ucieczka wartości zapytania przy użyciu ?
metody zastępczej:
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);
});
Jeśli masz wiele symboli zastępczych, tablica zawiera wiele wartości w tej kolejności:
Przykład
Wiele symboli zastępczych:
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);
});