Middle
Tayyorlangan so'rovlar (prepared statements) nima?
sobes.tech AI
AIdan javob
Tayyorlangan so'rovlar (prepared statements) — bu ma'lumotlar bazalari bilan ishlashda mexanizm bo'lib, unda SQL so'rovi bir marta kompilatsiya qilinadi va optimallashtiriladi, so'ngra turli parametrlar bilan ko'p marta bajarilishi mumkin.
Afzalliklari:
- Yuqori samaradorlik — bir xil so'rovni takroran chaqirishda.
- Xavfsizlik — SQL injektsiyalaridan himoya, chunki parametrlar so'rov matnidan alohida uzatiladi.
- Qulaylik — parametrlar avtomatik ravishda joylashtiriladi, qiymatlarni qo'lda qochirish shart emas.
Go tilida, tayyorlangan so'rov *sql.DB yoki *sql.Tx ob'ekti yordamida Prepare metodi bilan yaratiladi:
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)
Shu tarzda, so'rov bir marta kompilatsiya qilinadi va turli parametrlar bilan takroran chaqirilishi mumkin.