我确信connectionString有一些东西,因为我给出的值与我在Java中用于登录同一数据库的值相同。这是我的代码
package main
import(
"fmt"
"database/sql"
_ "github.com/lib/pq"
"log"
)
func main() {
db, err := sql.Open("postgres", "user=postgres password=password dbname=name sslmode=disable")
if err != nil {
log.Fatal(err)
}
defer db.Close()
age := 21
rows, err := db.Query("SELECT city FROM streams WHERE id=69", age)
fmt.Println(rows)
}
我正在使用我在这里找到的https://godoc.org/github.com/lib/pq我的postgres版本是9.4而我的Go版本是1.6。我不知道为什么会这样。
答案 0 :(得分:2)
您可以添加ping代码并查看返回的错误吗?
package main
import (
"fmt"
"database/sql"
_ "github.com/lib/pq"
"log"
)
func main() {
db, err := sql.Open("postgres", "user=postgres password=password dbname=name sslmode=disable")
if err != nil {
log.Fatal(err)
}
err = db.Ping()
if err != nil {
log.Fatal(err)
}
defer db.Close()
age := 21
rows, err := db.Query("SELECT city FROM streams WHERE id=$1", age)
fmt.Println(rows)
}
答案 1 :(得分:1)
你的
rows, err := db.Query("SELECT city FROM streams WHERE id=69", age)
必须是:
rows, err := db.Query("SELECT city FROM streams WHERE id = ?", age)
也
defer db.Close()
执行查询后继续。