Sobes.tech
Middle

Hazırlanmış ifadələr (prepared statements) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Hazırlanmış sorğular (prepared statements) verilənlər bazası ilə işləmək üçün mexanizmdir, burada SQL sorğusu bir dəfə tərtib edilir və optimallaşdırılır, sonra isə müxtəlif parametrlərlə çoxsaylı dəfə icra oluna bilər.

Üstünlüklər:

  • Yüksək performans eyni sorğunun təkrarlanması zamanı.
  • Təhlükəsizlik — SQL injeksiyalarına qarşı qoruma, çünki parametrlər sorğu mətnindən ayrıdır.
  • Rahət — parametrlər avtomatik olaraq daxil edilir, dəyərləri əl ilə qaçışa ehtiyac yoxdur.

Go-da, hazırlanan sorğu *sql.DB və ya *sql.Tx obyektinin Prepare metodu ilə yaradılır:

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)

Bu şəkildə, sorğu bir dəfə tərtib edilir və müxtəlif parametrlərlə çoxsaylı dəfə çağırıla bilər.