Паника при попытке вставить в таблицу с помощью Голанга - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь вставить данные в базу данных, которую я создал, используя SQLite3, используя go lang.База данных имеет имя mydb, а моя таблица содержит имена исполнителей и содержит 3 столбца

Вот мой код:

package main

    import (
        "database/sql"
        "fmt"

        _ "github.com/go-sql-driver/mysql"
        sqlite "github.com/mattn/go-sqlite3"
    )

    func main() {
        //create("testdb")
        db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/mydb")
        if err != nil {
            panic(err.Error())
        }
        defer db.Close()

        insert, err := db.Query("INSERT INTO artists (name,album,hits)values('x','y','z')")
        if err != nil {
            panic(err.Error())
        }
        defer insert.Close()
        fmt.Println("connected")
    }

и вот ошибка, которую я получаю при запуске main.go

  panic: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine actively refused it.

goroutine 1 [running]:
main.main()
        C:/Users/HP/go/src/connectingToDb/main.go:20 +0x1e5
exit status 2

Обратите внимание, что я создал базу данных в том же файле, что и main.go

1 Ответ

0 голосов
/ 03 декабря 2018

Вы должны открыть соединение с sqlite следующим образом: db, err := sql.Open("sqlite3", "my.db")

Вот рабочий код:

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "my.db")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    _, err = db.Exec(`CREATE TABLE IF NOT EXISTS artists (`+
         ` id INTEGER PRIMARY KEY AUTOINCREMENT,`+
         ` name text,`+
         ` album text,`+
         ` hits text`+
    `)`)
    if err != nil {
        panic(err.Error())
    }

    insert, err := db.Query("INSERT INTO artists (name,album,hits) VALUES('x','y','z')")
    if err != nil {
        panic(err.Error())
    }
    defer insert.Close()
    fmt.Println("connected")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...