gpt4 book ai didi

mysql - 如何在Go中创建MySQL数据库(表)并执行CRUD操作

转载 作者:行者123 更新时间:2023-12-01 20:26:27 26 4
gpt4 key购买 nike

我已经从导入了驱动程序
github.com/go-sql-driver/mysql
并已成功建立与数据库的连接。
我只想开始创建表并能够更新,获取和删除表中的数据
我见过的其他资源似乎跳过了这一部分或不清楚(它们似乎开始获取数据,我就像..数据从何而来,它们是如何创建的),我只是想弄清楚解释谢谢。

// main.go
package main

import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)

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

更新16/05/2020:
事实证明,就像@mkopriva在评论中指出的那样,我什至都不知道必须首先运行数据库服务器(我想这是我挑战的最初源泉……现在我很想知道我还在做什么。假设甚至连接到... duh ...大声笑)
附言就我而言,防火墙不是问题。

最佳答案

您可以使用Exec提供的 Query QueryRow *sql.DB 方法将SQL命令发送到连接的数据库。

func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
panic(err)
} else if err = db.Ping(); err != nil {
panic(err)
}
defer db.Close()

_, err := db.Exec("CREATE TABLE IF NOT EXISTS mytable (id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, some_text TEXT NOT NULL)")
if err != nil {
panic(err)
}

// Create
res, err := db.Exec("INSERT INTO mytable (some_text) VALUES (?)", "hello world")
if err != nil {
panic(err)
}

// get the id of the newly inserted record
id, err := res.LastInsertId()
if err != nil {
panic(err)
}

// Read
var someText string
row := db.QueryRow("SELECT some_text FROM mytable WHERE id = ? LIMIT 1", id)
if err := row.Scan(&someText); err != nil {
panic(err)
}
fmt.Println(someText)

// Update
_, err = db.Exec("UPDATE mytable SET some_text = ? WHERE id = ?", "Hello, 世界", id)
if err != nil {
panic(err)
}

// Delete
_, err = db.Exec("DELETE FROM mytable WHERE id = ?", id)
if err != nil {
panic(err)
}
}

关于mysql - 如何在Go中创建MySQL数据库(表)并执行CRUD操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61789889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com