我使用的是Go1.9,它没有规定我使用以下语法
func main() {
dsn := DB_USER + ":" + DB_PASS + "@" + DB_HOST + "/" + DB_NAME + "?charset=utf8"
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()
q := "call regWorker('Thuto', 'Deere4454de', 'fueqx@mdj4f.com', '8725554675364', '94874256443', @outarg)"
_, err = db.Exec(q)
if err != nil {
log.Fatal(err)
}'
我发现奇怪的是它实际上注册了工人?我的问题是我需要@outarg值,但我不能100%确定如何检索它。我想重写这段代码,使之与这里解释的go-sql保持一致https://golang.org/pkg/database/sql/#out
我试着搜索,如果之前有人解释过,我很谦虚地道歉。
编辑:我是新来的
1条答案
按热度按时间9jyewag01#
不幸的是,至少是mysql驱动程序
go-sql-driver/mysql
,不支持Out
参数。但是您仍然可以使用mysql session变量来检索out参数的值。不过,您需要启用多语句支持才能工作
然后
在这个例子中,我假设
out
参数的类型为int
. 根据您的要求进行适当调整。注意:不幸的是,在这种情况下,您不能使用准备好的语句;因此,需要对参数值进行适当的清理和转义,以防止sql注入。