Cách UPDATE dữ liệu database MySQL bằng Golang

Hướng dẫn cách cập nhật dữ liệu trong MySQL database bằng Golang sử dụng Prepared Statements với nhiều tham số để đảm bảo tính bảo mật và hiệu quả.

Trong bài viết này, bạn sẽ học cách sử dụng Golang để thực hiện câu lệnh UPDATE dữ liệu trong MySQL với Prepared Statements có nhiều tham số. Phương pháp này giúp tránh các lỗ hổng bảo mật như SQL Injection.

package main

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

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

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

    // Câu lệnh UPDATE với Prepared Statement
    stmt, err := db.Prepare("UPDATE students SET name=?, age=? WHERE id=?")
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()

    // Thực thi câu lệnh với nhiều tham số
    res, err := stmt.Exec("John Doe", 22, 1)
    if err != nil {
        log.Fatal(err)
    }

    // Kiểm tra số hàng đã được cập nhật
    rowsAffected, err := res.RowsAffected()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Số hàng đã được cập nhật: %d\n", rowsAffected)
}

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

  1. import (...): Nhập các gói cần thiết cho chương trình như database/sqlfmt.
  2. db, err := sql.Open(...): Kết nối đến MySQL database với thông tin kết nối.
  3. defer db.Close(): Đảm bảo rằng kết nối database sẽ được đóng sau khi kết thúc.
  4. stmt, err := db.Prepare(...): Chuẩn bị câu lệnh UPDATE với Prepared Statement.
  5. defer stmt.Close(): Đảm bảo rằng Prepared Statement sẽ được đóng.
  6. res, err := stmt.Exec(...): Thực thi câu lệnh UPDATE với các tham số truyền vào.
  7. rowsAffected, err := res.RowsAffected(): Lấy số lượng hàng đã được cập nhật và in ra màn hình.

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

  • Golang 1.16+
  • Thư viện MySQL driver: 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:

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

Lời khuyên:

  • Luôn sử dụng Prepared Statements để tránh SQL Injection.
  • Kiểm tra kết nối đến database trước khi thực hiện các câu lệnh SQL.


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

Cách DELETE dữ liệu từ database MySQL bằng Golang

Hướng dẫn cách kết nối và xóa dữ liệu từ một bảng trong database MySQL bằng ngôn ngữ lập trình Golang.
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.
Xác thực JSON Web Token (JWT) với Golang

Hướng dẫn cách sử dụng JSON Web Token (JWT) để xác thực người dùng trong ứng dụng Golang. Bài viết sẽ trình bày chi tiết cách tạo, ký và xác minh token JWT để bảo mật API.
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ể.
Hướng dẫn tạo form upload nhiều hình ảnh bằng Golang

Hướng dẫn chi tiết cách tạo form để upload nhiều hình ảnh cùng lúc trong Golang bằng cách sử dụng thư viện `net/http`.
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ố.
Cách chuyển đổi chuỗi thành Boolean, Integer hoặc Float trong Golang

Hướng dẫn cách chuyển đổi chuỗi (string) thành các kiểu dữ liệu Boolean, Integer hoặc Float trong Golang. Bài viết này sẽ giúp bạn hiểu cách sử dụng các hàm chuyển đổi tích hợp trong Go để thao tác với các loại dữ liệu khác nhau.
Cách ghi nội dung vào file Excel bằng Golang

Hướng dẫn chi tiết cách ghi dữ liệu vào file Excel bằng ngôn ngữ lập trình Golang sử dụng thư viện excelize.
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.
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.

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