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":
Ví 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);
});
});
Chạy ví dụ »Lưu mã ở trên vào 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ẽ 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 '%' để biểu thị số 0, một hoặc nhiều ký tự:
Ví 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);
});
});
Chạy ví dụ »Lưu mã ở trên vào 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ẽ 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 khỏi giá trị truy vấn
Khi 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 nhằm ngăn chặn việc tiêm SQL, một kỹ thuật tấn công web phổ biến nhằm phá hủy hoặc sử dụng sai mục đích 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:
Ví dụ
Thoát các giá trị truy vấn bằng cách sử dụng phương thức mysql.escape()
:
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);
});
Chạy ví dụ » Bạn cũng có thể sử dụng ?
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():
Ví dụ
Thoát các giá trị truy vấn bằng cách sử dụng trình giữ chỗ ?
phương pháp:
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);
});
Chạy ví dụ »Nếu bạn có nhiều phần giữ chỗ, mảng sẽ chứa nhiều giá trị theo thứ tự đó:
Ví dụ
Nhiều phần 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);
});
Chạy ví dụ »