golang database/sql包使用

database/sql包可以使用原生的sql语句

使用原生的SQL语句,虽然没有使用别人封装好的SQL方法来得方便,快捷

但是避免了很多莫名奇妙的bug的出现,当然,自己用得不好也会出很多bug

代码示例

数据库名称golangsql

表结构

| temp2 | CREATE TABLE `temp2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) DEFAULT NULL,
  `pid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 |

示例代码

package main

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

func main() {
        var pid int
        db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/golangsql")

        if err != nil {
                fmt.Println(err)
                fmt.Println("Open err")
                return
        }
        defer db.Close()
        err = db.Ping()
        if err != nil {
                fmt.Println("Ping err")
                return
        }

        uid_temp := 1
        s := fmt.Sprintf("SELECT pid FROM temp2 WHERE uid = %d", uid_temp)
        rows, err := db.Query(s)
        if err != nil {
                fmt.Println("Query Err")
                fmt.Println(err)
        }
        defer rows.Close()

        for rows.Next() {
                err := rows.Scan(&pid)
                if err != nil {
                        fmt.Println("Scan Error")
                        fmt.Println(err)
                }
                fmt.Println(pid)
        }
}

[dm href=’https://segmentfault.com/a/1190000003036452′]参考地址[/dm]

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部