Node.js MySQL Waar


Kies Met 'n filter

Wanneer u rekords uit 'n tabel kies, kan u die keuse filtreer deur die "WHERE"-stelling te gebruik:

Voorbeeld

Kies rekord(s) met die adres "Parkbaan 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);
  });
});

Stoor die kode hierbo in 'n lêer genaamd "demo_db_where.js" en hardloop die lêer:

Begin "demo_db_where.js"

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

Wat vir jou hierdie resultaat sal gee:

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


Wildcard karakters

Jy kan ook die rekords kies wat begin, insluit of eindig met 'n gegewe letter of frase.

Gebruik die '%' jokerteken om nul, een of veelvuldige karakters voor te stel:

Voorbeeld

Kies rekords waar die adres met die letter 'S' begin:

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

Stoor die kode hierbo in 'n lêer genaamd "demo_db_where_s.js" en hardloop die lêer:

Begin "demo_db_where_s.js"

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

Wat vir jou hierdie resultaat sal gee:

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

Ontsnap navraagwaardes

Wanneer navraagwaardes veranderlikes is wat deur die gebruiker verskaf word, moet jy die waardes ontsnap.

Dit is om SQL-inspuitings te voorkom, wat 'n algemene webkrakertegniek is om jou databasis te vernietig of te misbruik.

Die MySQL-module het metodes om navraagwaardes te ontsnap:

Voorbeeld

Ontsnap navraagwaardes deur die mysql.escape() metode te gebruik:

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

Jy kan ook a gebruik ?as 'n plekhouer vir die waardes wat jy wil ontsnap.

In hierdie geval word die veranderlike gestuur as die tweede parameter in die query() metode:

Voorbeeld

Ontsnap navraagwaardes deur die plekhouermetode ? te gebruik:

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

As jy veelvuldige plekhouers het, bevat die skikking veelvuldige waardes, in daardie volgorde:

Voorbeeld

Veelvuldige plekhouers:

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