Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql golang reflect for sql扫描报告错误_Postgresql_Reflection_Go - Fatal编程技术网

Postgresql golang reflect for sql扫描报告错误

Postgresql golang reflect for sql扫描报告错误,postgresql,reflection,go,Postgresql,Reflection,Go,数据库模式和数据显示在注释中 查询命令是: 选择id、编号、标识、名称、标题、电子邮件、站点、创建时间、城市id、更新时间、时区,从电子邮件地址所在的用户fixopen@yeah.net'限制1偏移0 与comment相同,此命令使用psql执行,返回一行数据 sql扫描方法执行错误,输出: 选择一个错误为sql:Scan error on column index 4:不支持的驱动程序->扫描对:[]uint8->*url.url 我的golang版本是go版本go1.5.2 darwin/a

数据库模式和数据显示在注释中

查询命令是:

选择id、编号、标识、名称、标题、电子邮件、站点、创建时间、城市id、更新时间、时区,从电子邮件地址所在的用户fixopen@yeah.net'限制1偏移0

与comment相同,此命令使用psql执行,返回一行数据

sql扫描方法执行错误,输出:

选择一个错误为sql:Scan error on column index 4:不支持的驱动程序->扫描对:[]uint8->*url.url

我的golang版本是go版本go1.5.2 darwin/amd64

PostgreSQL版本是9.4.2

使用github.com/lib/pq访问数据库

是db驱动程序不支持将字符串列扫描到url.url吗

我能做什么?

url.url未实现,因此无法从数据库中扫描它。您可以创建实现sql的包装器类型。扫描仪:

或者将URL单独扫描为字符串,然后对其进行解析:

type sqlURL struct { url.URL }
func (su *sqlURL) Scan(v interface{}) error {
    u, err := url.Parse(string(v.([]byte)))
    if err != nil {
        return err
    }
    *su = sqlURL{*u}
    return nil
}
type sqlURL struct { url.URL }
func (su *sqlURL) Scan(v interface{}) error {
    u, err := url.Parse(string(v.([]byte)))
    if err != nil {
        return err
    }
    *su = sqlURL{*u}
    return nil
}
var urlStr string
err = db.QueryRow(command).Scan(/* ... */, &urlStr)
// check err
u, err := url.Parse(urlStr)
// check err
user.Site = *u