Sobes.tech
Middle

Hazırlanmış ifadeler (prepared statements) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Hazırlanmış sorgular, veritabanlarıyla çalışma mekanizmasıdır; bu yöntemde SQL sorgusu bir kez derlenir ve optimize edilir, ardından farklı parametrelerle çok kez çalıştırılabilir.

Avantajlar:

  • Yüksek performans aynı sorgunun tekrar tekrar çağrılmasında.
  • Güvenlik — SQL enjeksiyonlarına karşı koruma sağlar, çünkü parametreler sorgu metninden ayrı iletilir.
  • Kullanım kolaylığı — parametreler otomatik olarak yerleştirilir, değerleri manuel olarak kaçış gerekmez.

Go'da, hazırlanan sorgu *sql.DB veya *sql.Tx nesnesinin Prepare yöntemiyle oluşturulur:

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 şekilde, sorgu bir kez derlenir ve farklı parametrelerle tekrar tekrar çağrılabilir.