Mysql: рдЕрдВрддрд┐рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЬреВрди 2013  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: go-sql-driver/mysql

рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдВрддрд┐рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ mysql рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╕ db.Exec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЕрдВрддрд┐рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ db.Exec рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ CREATE / INSERT / UPDATE / DELETE рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

package main

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:pass@/dbname")
    if err != nil {
        panic("Error opening DB:", err.Error())
    }
    defer db.Close()

    someParam := "value"

    if res, err := db.Exec(`INSERT INTO foo VALUES("bar", ?))`, someParam)
    if err != nil {
        println("Exec err:", err.Error())
    } else {
        id, err := res.LastInsertId()
        if err != nil {
            println("Error:", err.Error())
        } else {
            println("LastInsertId:", id)
        }
    }
} 

рдпрд╣ рд╕рднреА рджреЗрдЦреЗрдВ:
http://golang.org/pkg/database/sql/#DB.Exec
http://golang.org/pkg/database/sql/#Result

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдмрд╕ db.Exec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЕрдВрддрд┐рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ db.Exec рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ CREATE / INSERT / UPDATE / DELETE рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

package main

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:pass@/dbname")
    if err != nil {
        panic("Error opening DB:", err.Error())
    }
    defer db.Close()

    someParam := "value"

    if res, err := db.Exec(`INSERT INTO foo VALUES("bar", ?))`, someParam)
    if err != nil {
        println("Exec err:", err.Error())
    } else {
        id, err := res.LastInsertId()
        if err != nil {
            println("Error:", err.Error())
        } else {
            println("LastInsertId:", id)
        }
    }
} 

рдпрд╣ рд╕рднреА рджреЗрдЦреЗрдВ:
http://golang.org/pkg/database/sql/#DB.Exec
http://golang.org/pkg/database/sql/#Result

рд╢реБрдХреНрд░рд┐рдпрд╛ рдорд╣рд╛рд╢рдп!

    if err == nil {
        println("LastInsertId:", id)
    } else {
        println("Error:", err.Error())
    }

рдСрдкреНрд╕ рдЯрд╛рдЗрдкреЛред рдореИрдВрдиреЗ рдКрдкрд░ рдХреЛрдб рддрдп рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж!

Int64 рдХреЗ рдмрдЬрд╛рдп int рдХреЛ рдХреИрд╕реЗ рдХрдиреНрд╡рд░реНрдЯ рдХрд░реЗрдВ?

strconv.Itoa(id) => cannot use id (type int64) as type int in argument to strconv.Itoa

рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдУ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╕рд╡рд╛рд▓ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╡рд╛рд▓ рдордд рдкреВрдЫреЛред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕