先来几句草泥马草泥马...
首先要安装Go-SQL-Driver/MySql,下载安装前要保证你的GOPATH对应的是你的项目目录
export GOPATH=/var/www/gogogo/test
然后下载安装
go install github.com/Go-SQL-Driver/MySQL
go get github.com/Go-SQL-Driver/MySQL
main.go中
import 中加上 _"github.com/Go-SQL-Driver/MySQL" 和 "database/sql"
然后是链接数据库,msyql
db, err := sql.Open("mysql","用户名:密码@/数据库?charset=utf8")
先来查询
我的数据库中有三个字段(id,name,pwd)
所以我定义了一个结构体类型
type User struct{
Id string
Name string
Pwd string
}
定义一个结构体(定义?声明?有点分不清,反正就这么回事,)
var u User
stmtOut, err := db.Prepare("select * from user where id=?") //注册一条sql语句
注意了啊 !注意了啊!我在这里卡了很久啊~~草泥马
err = stmtOut.QueryRow(5).Scan(&u.Id,&u.Name,&u.Pwd)
首先 第一个5 是我传到sql里面的值 ,占位?这个的。
然后我sql 中用的* 也就是说我查出来的这条数据是有“3个字段”
这个意思就是 应该是三个,你丫的咋写了两个。傻逼啊~
我本来结构体定义的只有两个属性的,后面用的时候也是录入两个属性的。但是查出来的数据是有三个属性,我就在结构体中加了个Id然后再Scan()中加了个id
这样就OK了
然后就是得到的这个err了
没有数据时就是nil
有数据是这U这个定义的结构体中能看到了
最后附上代码截图
晚安~~gogogo