Middle
Čo sú pripravené vyhlásenia (prepared statements)?
sobes.tech AI
Odpoveď od AI
Pripravené dopyty sú mechanizmus na prácu s databázami, pri ktorom je SQL dopyt skompilovaný a optimalizovaný raz, a potom môže byť vykonávaný viackrát s rôznymi parametrami.
Výhody:
- Zvýšený výkon pri opakovaných volaniach toho istého dopytu.
- Bezpečnosť — ochrana pred SQL injekciami, pretože parametre sa odovzdávajú oddelene od textu dopytu.
- Pohodlie — parametre sa automaticky vkladajú, nie je potrebné hodnoty manuálne escapovať.
V Go sa pripravený dopyt vytvára pomocou metódy Prepare objektu *sql.DB alebo *sql.Tx:
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)
Týmto spôsobom je dopyt skompilovaný raz, a potom ho možno volať viackrát s rôznymi parametrami.