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