2016-06-29 3 views
0

Я уверен, что есть что-то с connectionString, поскольку значения, которые я даю, это те же значения, которые я использую в Java для входа в ту же базу данных. Это мой кодGolang Postgres connection string not opening 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 и мой Go версии 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