How do I avoid SQL injection using GORM?

Learn how to avoid SQL injection attacks in Go by using GORM for safe and secure database interactions.

GORM, SQL Injection, Go, Database Security, ORM


package main

import (
    "fmt"
    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

// User represents a user model
type User struct {
    ID   uint
    Name string
    Age  int
}

func main() {
    // Initialize GORM with database
    db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
    if err != nil {
        fmt.Println("Failed to connect to the database")
        return
    }

    // Create the User table
    db.AutoMigrate(&User{})

    // Safe query to avoid SQL injection
    var user User
    name := "John" // This should be taken from user input
    db.First(&user, "name = ?", name) // Using parameterized query

    fmt.Println(user)
}
    

GORM SQL Injection Go Database Security ORM