Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menanyakan data mysql dalam bahasa go

Bagaimana untuk menanyakan data mysql dalam bahasa go

PHPz
PHPzasal
2023-03-22 14:23:561827semak imbas

Golang ialah bahasa pengaturcaraan baru muncul yang, seperti bahasa lain, boleh berinteraksi dengan pelbagai pangkalan data. Dalam artikel ini, kita akan membincangkan cara membuat pertanyaan pangkalan data MySQL menggunakan pemacu MySQL di Golang.

Untuk menggunakan pemacu MySQL, kami perlu memasangnya ke dalam projek Go kami dengan arahan berikut:

go get github.com/go-sql-driver/mysql

Selepas pemasangan selesai, kami perlu mengimportnya ke dalam Projek Golang:

import "github.com/go-sql-driver/mysql"

Seterusnya, kita perlu mewujudkan sambungan ke pangkalan data MySQL. Berikut ialah kod sampel, yang akan menyambung ke pangkalan data bernama "mydatabase":

db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/mydatabase")
if err != nil {
    log.Fatal(err)
}
defer db.Close()

Perhatikan bahawa dalam rentetan sambungan, kami menentukan port pelayan MySQL, iaitu 3306 secara lalai.

Setelah kami mewujudkan sambungan ke pangkalan data MySQL, kami boleh mula menanyakan data. Berikut ialah contoh pertanyaan mudah yang mendapatkan semula rekod semua pengguna daripada jadual bernama "pengguna":

rows, err := db.Query("SELECT * FROM users")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var email string
    err = rows.Scan(&id, &name, &email)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, name, email)
}

err = rows.Err()
if err != nil {
    log.Fatal(err)
}

Dalam contoh di atas, kami telah menggunakan fungsi db.Query untuk melaksanakan pertanyaan SQL. Fungsi ini akan mengembalikan objek Rows yang mengandungi semua baris hasil pertanyaan.

Seterusnya, kami menggunakan gelung for untuk melintasi semua baris dan menggunakan baris. Fungsi imbasan untuk membaca nilai lajur baris demi baris. Akhir sekali, kami menyemak ralat dalam sebarang hasil pertanyaan.

Sudah tentu, kami juga boleh menggunakan pertanyaan berparameter untuk menanya data dengan lebih selamat. Pertanyaan berparameter menghalang serangan suntikan SQL. Berikut ialah coretan kod sampel yang menggunakan pertanyaan berparameter untuk mendapatkan semula rekod pengguna bernama "john":

rows, err := db.Query("SELECT * FROM users WHERE name = ?", "john")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var email string
    err = rows.Scan(&id, &name, &email)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, name, email)
}

err = rows.Err()
if err != nil {
    log.Fatal(err)
}

Dalam contoh di atas, kami menggunakan pemegang tempat "?" dalam aksara rentetan pertanyaan dan lulus nilai yang anda mahu padankan dalam parameter fungsi Pertanyaan.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan pemacu MySQL Golang untuk menanyakan pangkalan data MySQL. Kami menunjukkan cara untuk mewujudkan sambungan ke MySQL, cara melaksanakan pertanyaan, dan cara menggunakan pertanyaan berparameter. Contoh-contoh ini menyediakan titik permulaan yang baik kepada pemula tentang cara mula menggunakan Golang untuk berinteraksi dengan pangkalan data MySQL.

Atas ialah kandungan terperinci Bagaimana untuk menanyakan data mysql dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn