Middle
Mi azok a prepared statement-ek?
sobes.tech MI
Válasz az MI-től
Az előkészített lekérdezések (prepared statements) egy olyan mechanizmus az adatbázisok kezelésében, amelyben az SQL-lekérdezést egyszer fordítják le és optimalizálják, majd többször végrehajtható különböző paraméterekkel.
Előnyök:
- Növelt teljesítmény ugyanazon lekérdezés többszöri hívásakor.
- Biztonság — védelmet nyújt az SQL-injekciók ellen, mivel a paraméterek külön kerülnek átadásra a lekérdezés szövegétől.
- Kényelem — a paraméterek automatikusan behelyettesítésre kerülnek, nem kell manuálisan escape-elni az értékeket.
Go-ban a készített lekérdezést a *sql.DB vagy *sql.Tx objektum Prepare metódusával hozzuk létre:
stmt, err := db.Prepare("SELECT name FROM users WHERE id = ?")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
var name string
err = stmt.QueryRow(1).Scan(&name)
if err != nil {
log.Fatal(err)
}
fmt.Println(name)
Így a lekérdezés egyszer fordításra kerül, majd többször is meghívható különböző paraméterekkel.