常常用到批量更新sql,也常採用sql拼接批量執行;
再熟悉不過得sql居然再 go 執行時 提示語法錯誤;
百思不得其解時偶遇文章得知:
一些 mysql 驅動默認是不支持multi statements的需要進行配置,因爲 multi statements 可能會增加sql注入的風險
解決辦法
需要加入參數 multiStatements=true
db, err := sql.Open(sqlType, "user:password@tcp(127.0.0.1:3306)/database?multiStatements=true")
if err != nil {
log.Fatalf("open mysql err: %s", err)
}