【发布时间】:2017-03-03 14:40:25
【问题描述】:
我的主函数打开一个数据库连接:
func main() {
db, err := sql.Open("sqlite3", "./house.db")
checkErr(err)
...
}
然后,我想创建一个函数,允许我根据传递的结构向数据库添加一行:
func addRow(row Room) error {
stmt, err := db.Prepare("INSERT INTO Rooms (Name, Size, WindowCount, WallDecorationType, Floor) VALUES(?, ?, ?, ?, ?)")
_, err = stmt.Exec(row.Name , row.Size , row.WindowCount , row.WallDecorationType , row.Floor)
return err
}
但显然我不能这样做,因为addRow() 函数不知道db 是什么。
如何使这个功能发挥作用?我是否应该在主函数之外打开数据库?
【问题讨论】:
-
你不能把
db作为参数传入吗? -
使用全局
db或将其作为参数传递。