Për të punuar me MySQL, së pari duhet të shkarkohet drajveri përkatës nga Github:
go get github.com/go-sql-driver/mysql
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"log"
)
func main() {
db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/markdown")
defer db.Close()
if err != nil {
log.Fatal(err)
}
var id int
var book_title string
rows, err := db.Query("SELECT id, book_title FROM books ORDER BY id")
for rows.Next() {
rows.Scan(&id, &book_title)
fmt.Printf("ID: %v, %v\n", id, book_title)
}
}
https://play.golang.org/p/3l4xo1BS9y_s
Rezultati:
ID: 1, Go për fillestarë
ID: 2, PHP dhe MySQL për fillestarë
ID: 3, Laravel për fillestarë
I> Ky program duhet të kompajlohet lokalisht, nuk do të ekzekutohet në Go Playground. Emrat e databazës, tabelës, fushave të tabelës si dhe kredencialet duhet të përshtaten.
Leximi i radhëve të tabelës ne përdorimin e struct/tag
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"log"
)
type Fushat struct {
ID int `json:"id"` // Emertimi i fushes ne tabele
Titulli string `json:"book_title"` // Emertimi i fushes ne tabele
}
func main() {
db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/markdown")
defer db.Close()
if err != nil {
log.Fatal(err)
}
results, err := db.Query("SELECT id, book_title FROM books ORDER by id")
if err != nil {
panic(err.Error())
}
for results.Next() {
var fushat Fushat
err = results.Scan(&fushat.ID, &fushat.Titulli)
if err != nil {
panic(err.Error())
}
fmt.Printf("%v %v\n", fushat.ID, fushat.Titulli)
}
}
https://play.golang.org/p/1FMj5NKuGxn
Rezultati:
1 Go për fillestarë
2 PHP dhe MySQL për fillestarë
3 Laravel për fillestarë
I> Ky program duhet të kompajlohet lokalisht, nuk do të ekzekutohet në Go Playground. Emrat e databazës, tabelës, fushave të tabelës si dhe kredencialet duhet të përshtaten.