Sobes.tech
Middle

რა არის მომზადებული შეკითხვები (prepared statements)?

sobes.tech AI

პასუხი AI-სგან

მომზადებული შეკითხვები (prepared statements) არის მექანიზმი მონაცემთა ბაზებთან მუშაობისთვის, სადაც SQL შეკითხვა ერთჯერად იწერება და ოპტიმიზირებულია, ხოლო შემდეგ მრავალჯერ შეიძლება შესრულდეს სხვადასხვა პარამეტრებით.

უპირატესობები:

  • ზედმეტად მაღალი შესრულების სიჩქარე იგივე შეკითხვების განმეორებითი გამოძახებისას.
  • უსაფრთხოება — დაცვა SQL ინექციებისგან, რადგან პარამეტრები გადაეცემა ცალკე შეკითხვის ტექსტიდან.
  • საყვარლობა — პარამეტრები ავტომატურად ივსება, არ არის საჭირო მნიშვნელობების ხელით გადახაზვა.

Go-ში, მომზადებული შეკითხვა შექმნილია *sql.DB ან *sql.Tx ობიექტის Prepare მეთოდით:

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)

ამ გზით, შეკითხვა ერთჯერად იწერება, და შემდეგ შეიძლება მრავალჯერ გამოძახება სხვადასხვა პარამეტრებით.