2016-06-29 4 views
0

私は、同じデータベースにログインするためにJavaで使用するものと同じ値を渡しているので、connectionStringには何かがあると確信しています。これは私が私がここに見つけたものを使用しています私のコードGolang Postgres接続文字列が返されないreturn null

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で、私のゴーバージョンは1.6です。なぜそれが起こっているのか分かりません。

答えて

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) 

} 
+0

ありがとうございました。それは無しを出したドル記号の欠如でした。 – user1591668

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() 

は、クエリを実行した後になります。

+0

答えに役立つありがとうございました。 – user1591668

関連する問題