从this教程显示rows.Closed()
必须被称为rows
来自stmt.Query()
,stmt.Closed()
也应该被称为stmt
来自db.Prepare()
?
// inside a function
stmt, err := db.Prepare(cmd) // cmd is SQL string
Check(err)
// should we add: defer stmt.Close()
rows, err := stmt.Query(params) // params is map/interface{}
defer rows.Close()
Check(err)
简短的回答是肯定的。你应该调用stmt.Close();
长的答案可以找到in this google groups thread.
使用方法如下
// inside a function
stmt, err := db.Prepare(cmd) // cmd is SQL string
if err != nil {
println(err.Error())
}
defer stmt.Close()
rows, err := stmt.Query(params) // params is map/interface{}
if err != nil {
println(err.Error())
}