Golang 中使用MySql 進行動態ORDER BY
問題:
問題:問題:
分析:
與過濾器參數不同,佔位符(?)不能用於 SQL 關鍵字或識別符,包括 ORDER BY 子句。
ordCol := "title" qtext := fmt.Sprintf("SELECT * FROM Apps ORDER BY %s DESC", ordCol) rows, err := db.Query(qtext)
解:
要實現動態排序,可以使用 fmt.Sprintf() 動態組合查詢文字。例如:valid := regexp.MustCompile("^[A-Za-z0-9_]+$") if !valid.MatchString(ordCol) { // Invalid column name, prevent SQL injection }
以上是如何在 MySQL 中實作 Go 中的動態 ORDER BY 子句來防止 SQL 注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!