【发布时间】:2020-01-12 01:49:48
【问题描述】:
我的 golang sqlite 插入函数。我正在使用这个包"github.com/mattn/go-sqlite3"
func Insert(args ...string)(err error){
db, err:=sql.Open("sqlite3","sqlite.db")
if err !=nil {
return
}
q, err := db.Prepare(args[0])
if err !=nil{
return
}
_,err = q.Exec(args[1:]...)
return
}
main (){
err := Insert("INSERT INTO table(first,last) VALUES(?,?)","Nantha","nk")
if err !=nil{
fmt.Println(err.Error())
return
}
}
我收到了这个错误
不能在参数中使用 args (type []string) 作为 type []interface {} q.执行
【问题讨论】:
-
您必须先将
[]string转换为[]interface{},然后再将其传递给Exec。这样做的方法是遍历字符串并将每个字符串添加到新的 interface{} 切片中。 -
任何其他不使用循环的解决方案
-
不,没有。
-
@mkopriva 他可以使用形式上不是循环的递归解决方案;-)
标签: go