mysql - 尝试使用 golang 插入表格时出现恐慌
问题描述
我正在尝试将数据插入到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 相同的文件中创建了数据库
解决方案
您应该像这样打开连接到 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")
}
推荐阅读
- javascript - 执行@PostMapping 并留在页面上而不进行重定向
- java - 在 Android 10 中从文件元数据中获取 GPS 数据
- typescript - 使用打字稿进行业力测试:找不到请求的文件
- android - kotlin 中的内联类和 UInt 可以安全使用吗?
- javascript - 跳出后将文本框文本更改为 xxxx
- python - 过滤允许连接到服务器的端口
- javascript - 使用 reactjs 更改当前页面位置
- r - 是否可以在某些语言环境中的 data.frame/data.table 中使用 unicode 列名?
- node.js - 服务端通过socket.io发送的数据显示异常
- javascript - date.setHours() 函数未将时间完全设置为零