gorose icon indicating copy to clipboard operation
gorose copied to clipboard

按照示例中使用出现错误:panic: runtime error: invalid memory address or nil pointer dereference

Open songning4 opened this issue 4 years ago • 2 comments

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/gohouse/gorose/v2"
)
var err error
var engin *gorose.Engin
func init() {
    // 全局初始化数据库,并复用
    // 这里的engin需要全局保存,可以用全局变量,也可以用单例
    // 配置&gorose.Config{}是单一数据库配置
    // 如果配置读写分离集群,则使用&gorose.ConfigCluster{}
	engin, err = gorose.Open(&gorose.Config{Driver: "mysql", Dsn: config})
    // mysql示例, 记得导入mysql驱动 github.com/go-sql-driver/mysql
	// engin, err = gorose.Open(&gorose.Config{Driver: "mysql", Dsn: "root:root@tcp(localhost:3306)/test?charset=utf8mb4&parseTime=true"})
}
func DB() gorose.IOrm {
	return engin.NewOrm()
}
func main() {
    // 原生sql, 直接返回结果集
    res,err := DB().Query("select * from users where uid>? limit 2", 1)
    fmt.Println(res)
    affected_rows,err := DB().Execute("delete from users where uid=?", 1)
    fmt.Println(affected_rows, err)

    // orm链式操作,查询单条数据
    res, err = DB().Table("users").First()
    // res 类型为 map[string]interface{}
    fmt.Println(res)
    
    // orm链式操作,查询多条数据
    res2, _ := DB().Table("users").Get()
    // res2 类型为 []map[string]interface{}
    fmt.Println(res2)
}

按照该示例使用,报错: panic: runtime error: invalid memory address or nil pointer dereference

songning4 avatar Jan 23 '21 13:01 songning4

@songning4 报错行数是多少

fizzday avatar Feb 05 '21 13:02 fizzday

@songning4 报错行数是多少

你好,报错行是:

engin, err = gorose.Open(&gorose.Config{Driver: "mysql", Dsn: config})

songning4 avatar Feb 07 '21 02:02 songning4