DANH MỤC: NODE.JS & MYSQL

Bài 4: Lấy lastID vừa insert vào MySQL bằng Node.js


Các phần trước mình đã giới thiệu với mọi người cách thực thi truy vấn SQL trên Node.js và cách phòng chống lỗi SQL injection thần thánh rồi. Phần này mình sẽ hướng dẫn mọi người cách lấy ra id của bản ghi chúng ta vừa insert vào trong MySQL.

1, Cú Pháp.

- Để lấy id của bản ghi mà chúng ta vừa insert vào trong MySQL thì chúng ta sử dụng phương thức insertID theo cú pháp sau:

conn.connect(function (err){
    if (err) throw err.stack;
    sql = conn.format(sql,prepare);
    conn.query(sql, function (err, results, fields) {
        if (err) throw err.stack;
        results.insertId;
    });
});

Trong đó:

  • sql -  là câu truy vấn insert dữ liệu của các bạn.
  • results.insertID là phương thức lấy ra id của bản ghi vừa insert.

2, Ví Dụ.

VD1: Thực hiện thêm 1 city mới vào trong bảng city và đồng thời lấy ra id của bản ghi đó.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    if (err) throw err.stack;
    var sql = "INSERT INTO city(name,zipcode) VALUES (?,?)";
    var prepare = ['Thai Binh', '85000'];
    sql = conn.format(sql,prepare);
    conn.query(sql, function (err, results, fields) {
        if (err) throw err.stack;
        console.log('Them thanh cong ban ghi co id = ' + results.insertId);
    });
});

Đoạn code trên nếu không có lỗi xảy ra sẽ trả về kết quả dạng như:

Them thanh cong ban ghi co id = 7

VD2: Thực hiện thêm một city mới và đồng thời thêm một person mới với city_id = id của city vừa mới insert.

-Relasitionship:

Mối quan hệ các bảng

Code:

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    if (err) throw err.stack;
    var sql = "INSERT INTO city(name,zipcode) VALUES (?,?)";
    var prepare = ['Thai Binh', '85000'];
    sql = conn.format(sql,prepare);
    conn.query(sql, function (err, results, fields) {
        if (err) throw err.stack;
        conn.query('INSERT INTO person(name,city_id) VALUES ("Vũ Văn A",' + results.insertId + ' )');
    });
});

3, Lời kết.

- Việc lấy ra được ID của bản ghi vừa insert thực sự rất hữu dụng trong các trường hợp mà các bạn muốn thêm nhiều bản ghi phụ thuộc vào nhau.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia