Cách INSERT dữ liệu vào database MySQL bằng Golang

Hướng dẫn cách sử dụng Prepared Statements trong Golang để thực hiện thao tác INSERT dữ liệu vào database MySQL với nhiều tham số.

Trong bài viết này, bạn sẽ học cách sử dụng Prepared Statements trong Golang để chèn dữ liệu vào bảng MySQL với nhiều tham số, giúp tăng hiệu suất và bảo mật khi xử lý dữ liệu.

package main

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // Kết nối tới database MySQL
    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // Kiểm tra kết nối
    if err := db.Ping(); err != nil {
        log.Fatal(err)
    }

    // Chuẩn bị câu lệnh INSERT với nhiều tham số
    stmt, err := db.Prepare("INSERT INTO students(name, age, email) VALUES (?, ?, ?)")
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()

    // Thực hiện chèn dữ liệu
    data := [][]interface{}{
        {"Nguyen Van A", 20, "[email protected]"},
        {"Tran Thi B", 22, "[email protected]"},
        {"Le Van C", 21, "[email protected]"},
    }

    for _, record := range data {
        _, err = stmt.Exec(record...)
        if err != nil {
            log.Printf("Error inserting record %v: %v", record, err)
        } else {
            fmt.Printf("Inserted record: %v\n", record)
        }
    }
}

Giải thích chi tiết từng dòng code:

  1. import: Import các gói cần thiết, bao gồm database/sqlgithub.com/go-sql-driver/mysql cho kết nối MySQL.
  2. sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db"): Kết nối đến database MySQL với thông tin người dùng, mật khẩu và địa chỉ.
  3. db.Ping(): Kiểm tra kết nối đến database.
  4. db.Prepare(...): Chuẩn bị câu lệnh INSERT với nhiều tham số (?) để tránh SQL injection.
  5. data := [][]interface{}{...}: Tạo dữ liệu mẫu cần chèn với nhiều tham số.
  6. stmt.Exec(record...): Thực hiện câu lệnh INSERT với dữ liệu từ record.

Yêu cầu hệ thống:

  • Golang 1.15+
  • Thư viện: github.com/go-sql-driver/mysql

Cách cài đặt các thư viện để chạy được đoạn mã Golang trên:

Sử dụng lệnh sau để cài đặt thư viện MySQL driver:

go get -u github.com/go-sql-driver/mysql

Lời khuyên:

  • Sử dụng Prepared Statements giúp bảo mật hơn và tránh các cuộc tấn công SQL injection.
  • Đảm bảo kiểm tra lỗi cẩn thận ở mỗi bước để phát hiện vấn đề sớm.


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách so sánh hai slice byte trong Golang

Bài viết này hướng dẫn cách so sánh hai slice byte trong Golang. Golang cung cấp các phương thức tích hợp và thư viện giúp việc so sánh hai slice byte trở nên dễ dàng và chính xác.
Cách POST data tới API bằng Golang

Bài viết này hướng dẫn cách gửi dữ liệu tới API bằng phương thức POST trong Golang, giúp bạn hiểu rõ hơn về cách tương tác với các dịch vụ web.
Xử lý đa luồng trong Golang bằng Goroutine

Hướng dẫn cách xử lý đa luồng trong Golang bằng cách sử dụng Goroutine, giúp tối ưu hóa hiệu suất và tận dụng khả năng xử lý song song của CPU.
Cách truyền Authentication Header Token khi POST dữ liệu tới API bằng Golang

Hướng dẫn cách truyền Authentication Header Token khi gửi yêu cầu POST dữ liệu tới API bằng Golang. Bài viết này sẽ giúp bạn hiểu cách làm việc với HTTP request, thêm token vào Header để xác thực và gửi dữ liệu tới API.
Cách mở ứng dụng Notepad bằng Golang

Hướng dẫn cách sử dụng gói `os/exec` trong Golang để mở ứng dụng Notepad trên hệ điều hành Windows. Đây là một ví dụ thực tiễn về cách gọi và chạy một chương trình bên ngoài từ Golang.
Cách lấy dữ liệu JSON từ API bằng Golang

Bài viết này hướng dẫn cách lấy dữ liệu JSON từ API sử dụng ngôn ngữ lập trình Golang, giúp bạn hiểu rõ hơn về cách tương tác với các dịch vụ web.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong Golang

Hướng dẫn cách sử dụng Selenium trong Golang để tự động đăng nhập vào một website bằng trình duyệt Chrome. Bài viết sẽ cung cấp mã code cụ thể và giải thích chi tiết từng bước.
Hướng dẫn đọc nội dung file Excel bằng Golang

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng Golang, sử dụng thư viện excelize với các bước cài đặt và ví dụ minh họa cụ thể.
Slices trong Golang: Cách sử dụng và ví dụ

Bài viết này hướng dẫn cách sử dụng `slices` trong Golang, bao gồm cách khai báo, truy cập, và thao tác với slices - một tính năng linh hoạt giúp quản lý mảng hiệu quả hơn trong Go.
Cách chia chuỗi trong Golang bằng hàm SplitAfterN

Hướng dẫn cách sử dụng hàm `SplitAfterN` trong Golang để chia chuỗi dựa trên ký tự phân tách và giới hạn số phần tử được chia. Hàm này hữu ích khi cần chia chuỗi nhưng vẫn giữ nguyên ký tự phân tách.

Đã thêm vào giỏ hàng