php中文网

Gorm Raw 查询报错 unsupported destination 如何解决?

php中文网

gorm raw 原生查询报错 unsupported destination 解决方法

使用 gorm 执行原生查询时,遇到 unsupported destination, should be slice or struct 的错误,表明无法将查询结果扫描到指定的变量中。

错误的根源在于,gorm 的 raw 方法专为以表结构为目标的查询而设计,要求 destination 必须是一个切片或结构体,以映射查询结果和表结构。然而,select database() 查询不涉及表结构,因此与 gorm 的映射机制不兼容。

要解决此问题,可以使用原生 go sql 方法 queryrow,它可以直接从底层数据库连接查询单个行。为此,需要使用 *gorm.db 结构体的 db() 方法获取原生 *sql.db 连接:

func showCurrentDb() {
    var database string
    persistence.GetDB().DB().QueryRow("select database()").Scan(&database)
    fmt.Println("database ", database)
}

以上就是Gorm Raw 查询报错 unsupported destination 如何解决?的详细内容,更多请关注php中文网其它相关文章!