Go语言提供了database/sql
包来处理数据库操作,而MySQL则是常用的关系型数据库之一。通过database/sql
包结合MySQL驱动(如go-sql-driver/mysql
),可以在Go程序中执行SQL查询并处理结果。
database/sql
包提供了统一的接口,使得更换数据库变得相对容易。SELECT
语句后返回的结果集,包含多行数据。INSERT
、UPDATE
、DELETE
)后返回的单行结果,通常包含受影响的行数。以下是一个简单的Go程序示例,演示如何连接MySQL数据库并执行查询:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 连接数据库
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
if err != nil {
panic(err.Error())
}
defer db.Close()
// 执行查询
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 处理查询结果
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
panic(err.Error())
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
// 检查是否有错误发生
if err = rows.Err(); err != nil {
panic(err.Error())
}
}
问题:查询结果为空或不符合预期。
原因:
解决方法:
问题:执行查询时出现超时或连接被拒绝。
原因:
解决方法:
领取专属 10元无门槛券
手把手带您无忧上云