go语言连接mssql,sqlserver数据库执行sql语句的坑

  1. go语言连接mssql安装驱动
  2. sql语句替换变量中出问题了
    • 在看某一个视频时,替换语句是, db.Exec("delete from [user] where [id]=@id", sql.Named("id",u.id))
    • 一直报错,go err: sql: expected 0 arguments, got 1
  3. 网上查找答案,发现go连接sqlserver都是自己拼接sql的,fmt.Sprintf(),这样是不安全,没有找到一个案例是用变量的
  4. 最后试了一下把@id换成,mysql一样的,db.Exec("delete from [user] where [id]=?", u.id) 没问题了
  5. 还有一个问题,sqlserver的sql语句,由太多的自定义的东西,由很多内置关键字,使用时要用中括号,例如
    • insert into user values(?,?) 这里面user\name\age都是关键字,需要中括号