Sobes.tech
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.