我们还应该关闭Golang中DB的.Prepare()吗?

问题描述 投票:3回答:2

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)
sql go prepared-statement
2个回答
4
投票

简短的回答是肯定的。你应该调用stmt.Close();

长的答案可以找到in this google groups thread.


0
投票

使用方法如下

// 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())
}
© www.soinside.com 2019 - 2024. All rights reserved.