BASIC TO ADVANCE

Bài 2: Thực thi query MySQL với Node.js

Ở bài trước mình đã giới thiệu với mọi người về cách kết nối Node.js đến MySQL rồi. Bài này chúng ta sẽ tiếp tục đi vào thực hiện các câu truy vấn trong MySQL với Node.js bằng phương thức query.

1, Cú Pháp.

-Để thực hiện truy vấn MySQL bằng Node.js thì mọi người sử dụng cú pháp:

conn.query(sql,function (err, result, fields) {
   //code
});

Trong đó:

  • sql - là câu truy vấn SQL mà các bạn muốn thực hiện.
  • err - là biến chứa thông tin lỗi nếu có.
  • result - là biến chứa mảng object data trả về của câu truy vấn nếu có.
  • fields - là biến chứa mảng object chứa thông tin về từng trường của results trả về (nếu có).

2, Ví Dụ.

VD1: Tạo mới 1 table trong MySQL bằng Node.js.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "CREATE TABLE city (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT ,name varchar(30) not null, zipcode varchar(6))";
    conn.query(sql, function (err) {
        if (err) throw err;
        console.log('Tao thanh cong');
    });
});

Lúc này nếu thành công thì chương trình sẽ báo:

Tao thanh cong

 Để kiểm tra các bạn có thể truy cập vào database để xem.

Tạo bảng trong MySQL bằng node.js

VD2: Thêm mới dữ liệu vào bảng bằng Node.js.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "INSERT INTO city(name,zipcode) values ('Ha Noi', '100000'),('T.P HCM','80000'), ('Da Nang', '50000'), ('Nam Dinh', '40000')";
    conn.query(sql, function (err) {
        if (err) throw err;
        console.log('Tao thanh cong');
    });
});

Nếu thành công thì kết quả trả về sẽ là: Tao thanh cong

Để chắc chắn các bạn vào phpmyadmin xem

Thêm dữ liệu trong MySQL

VD3: Select dữ liệu trong bảng.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "SELECT * FROM city";
    conn.query(sql, function (err,results, fields) {
        if (err) throw err;
        console.log(results);
    });
});

Nếu đúng thì kết quả trả về sẽ có dạng.

[ 
  { id: 1, name: 'Ha Noi', zipcode: '100000' },
  { id: 2, name: 'T.P HCM', zipcode: '80000' },
  { id: 3, name: 'Da Nang', zipcode: '50000' },
  { id: 4, name: 'Nam Dinh', zipcode: '40000' }
]

VD4: Cũng như VD3 nhưng là lấy thông tin của các trường của dữ liệu.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "SELECT * FROM city";
    conn.query(sql, function (err,results, fields) {
        if (err) throw err;
        console.log(fields);
    });
});

Kết Quả trả về sẽ có dạng:

[
    {
        catalog: 'def',
        db: 'mysql_node',
        table: 'city',
        orgTable: 'city',
        name: 'id',
        orgName: 'id',
        charsetNr: 63,
        length: 11,
        type: 3,
        flags: 16899,
        decimals: 0,
        default: undefined,
        zeroFill: false,
        protocol41: true 
    },
    {
        catalog: 'def',
        db: 'mysql_node',
        table: 'city',
        orgTable: 'city',
        name: 'name',
        orgName: 'name',
        charsetNr: 33,
        length: 90,
        type: 253,
        flags: 4097,
        decimals: 0,
        default: undefined,
        zeroFill: false,
        protocol41: true 
    },
    {
        catalog: 'def',
        db: 'mysql_node',
        table: 'city',
        orgTable: 'city',
        name: 'zipcode',
        orgName: 'zipcode',
        charsetNr: 33,
        length: 18,
        type: 253,
        flags: 0,
        decimals: 0,
        default: undefined,
        zeroFill: false,
        protocol41: true 
    } 
]

3, Lời kết.

-Như vậy, qua bài này mình đã giới thiệu xong đến mọi người cách thực thi truy vấn MySQL bằng Node.js rồi. Bài sau chúng ta sẽ tìm hiểu về kỹ thuật escaping trong mysql module.

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

0 Comments

Bài viết chưa có ai bình luận, hãy là người đầu tiên đi bạn!

Bình luận

Captcha