我正在尝试使用 go lang 将数据插入到我使用 SQLite3
创建的数据库中。数据库名为 mydb
,我的表名为 artists 并包含 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 相同的文件中创建了数据库
最佳答案
你应该像这样打开连接到 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")
}
关于mysql - 尝试使用 golang 插入表时出现 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53585476/