GoDasturchi
Prepared Statements

Prepared Statements

Tayyorlangan so'rovlar

Agar bir xil so'rovni ko'p marta, faqat qiymatlarini o'zgartirib bajarish kerak bo'lsa, uni oldindan tayyorlab ("prepare"), keyin qayta-qayta ishlatish samaraliroq — baza har safar so'rovni qaytadan tahlil qilmaydi.

example.go
stmt, err := db.Prepare("INSERT INTO users (name, age) VALUES (?, ?)")
if err != nil {
	fmt.Println("xato:", err)
	return
}
defer stmt.Close()

names := []struct {
	Name string
	Age  int64
}{
	{"Bobur", 25},
	{"Malika", 30},
}

for _, n := range names {
	if _, err := stmt.Exec(n.Name, n.Age); err != nil {
		fmt.Println("xato:", err)
		return
	}
}
fmt.Println("hammasi qo'shildi")

db.Prepare(so'rov) so'rovni bir marta "tayyorlaydi" va qayta ishlatiladigan *sql.Stmt qaytaradi. Keyin uni sikl ichida stmt.Exec(...) bilan xohlagancha marta, turli argumentlar bilan chaqirish mumkin. Bu naqsh ayniqsa ko'p sonli (masalan yuzlab yoki minglab) bir xil shakldagi buyruqlarni bajarishda samaradorlikni oshiradi.

>_ Exercise

Tayyorlangan so'rov bilan bir nechta foydalanuvchi qo'shing.

  • db.Prepare bilan INSERT so'rovini tayyorlang
  • ikkita foydalanuvchini stmt.Exec bilan qo'shing
  • memTable uzunligini (len) chop eting

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

db.Prepare bir xil shakldagi so'rovni bir marta tayyorlab, keyin ko'p marta samarali qayta ishlatish imkonini beradi.

NEXT UP

Handling NULL Values

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Prepared Statements

Tayyorlangan so'rovlar

Agar bir xil so'rovni ko'p marta, faqat qiymatlarini o'zgartirib bajarish kerak bo'lsa, uni oldindan tayyorlab ("prepare"), keyin qayta-qayta ishlatish samaraliroq — baza har safar so'rovni qaytadan tahlil qilmaydi.

example.go
stmt, err := db.Prepare("INSERT INTO users (name, age) VALUES (?, ?)")
if err != nil {
	fmt.Println("xato:", err)
	return
}
defer stmt.Close()

names := []struct {
	Name string
	Age  int64
}{
	{"Bobur", 25},
	{"Malika", 30},
}

for _, n := range names {
	if _, err := stmt.Exec(n.Name, n.Age); err != nil {
		fmt.Println("xato:", err)
		return
	}
}
fmt.Println("hammasi qo'shildi")

db.Prepare(so'rov) so'rovni bir marta "tayyorlaydi" va qayta ishlatiladigan *sql.Stmt qaytaradi. Keyin uni sikl ichida stmt.Exec(...) bilan xohlagancha marta, turli argumentlar bilan chaqirish mumkin. Bu naqsh ayniqsa ko'p sonli (masalan yuzlab yoki minglab) bir xil shakldagi buyruqlarni bajarishda samaradorlikni oshiradi.

>_ Exercise

Tayyorlangan so'rov bilan bir nechta foydalanuvchi qo'shing.

  • db.Prepare bilan INSERT so'rovini tayyorlang
  • ikkita foydalanuvchini stmt.Exec bilan qo'shing
  • memTable uzunligini (len) chop eting

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

db.Prepare bir xil shakldagi so'rovni bir marta tayyorlab, keyin ko'p marta samarali qayta ishlatish imkonini beradi.

NEXT UP

Handling NULL Values