Node.js MySQL ở đâu


Chọn bằng bộ lọc

Khi chọn bản ghi từ một bảng, bạn có thể lọc lựa chọn bằng cách sử dụng câu lệnh "WHERE":

Thí dụ

Chọn (các) bản ghi có địa chỉ "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);
  });
});

Lưu đoạn mã trên vào một tệp có tên "demo_db_where.js" và chạy tệp:

Chạy "demo_db_where.js"

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

Điều này sẽ cung cấp cho bạn kết quả này:

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


Ký tự đại diện

Bạn cũng có thể chọn các bản ghi bắt đầu, bao gồm hoặc kết thúc bằng một chữ cái hoặc cụm từ nhất định.

Sử dụng ký tự đại diện '%' để đại diện cho không, một hoặc nhiều ký tự:

Thí dụ

Chọn các bản ghi có địa chỉ bắt đầu bằng chữ '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);
  });
});

Lưu mã ở trên vào một tệp có tên "demo_db_where_s.js" và chạy tệp:

Chạy "demo_db_where_s.js"

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

Điều này sẽ cung cấp cho bạn kết quả này:

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

Thoát giá trị truy vấn

Khi các giá trị truy vấn là các biến do người dùng cung cấp, bạn nên thoát khỏi các giá trị.

Điều này là để ngăn chặn việc tiêm SQL, đây là một kỹ thuật tấn công web phổ biến để phá hủy hoặc sử dụng sai cơ sở dữ liệu của bạn.

Mô-đun MySQL có các phương thức để thoát các giá trị truy vấn:

Thí dụ

Thoát các giá trị truy vấn bằng cách sử dụng mysql.escape() phương pháp:

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

Bạn cũng có thể sử dụng một ?làm trình giữ chỗ cho các giá trị bạn muốn thoát.

Trong trường hợp này, biến được gửi dưới dạng tham số thứ hai trong phương thức query ():

Thí dụ

Thoát các giá trị truy vấn bằng cách sử dụng phương pháp giữ chỗ ? :

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

Nếu bạn có nhiều chỗ dành sẵn, mảng chứa nhiều giá trị, theo thứ tự đó:

Thí dụ

Nhiều trình giữ chỗ:

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