第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中編寫文本 SQL 查詢的正確方法

在 Go 中編寫文本 SQL 查詢的正確方法

Go
桃花長相依 2021-12-27 15:02:10
我找不到一個很好的例子來說明將文本查詢的字符串部分與值連接起來的正確方法。例如:query := `SELECT column_name FROM table_name        WHERE column1_name = %d AND column2_name = %d` % (val1, val2)rows, res, err := db.Query(query)這不起作用。編譯器syntax error: unexpected comma, expecting ) 可能返回,因為我正在嘗試使用 python 樣式的元組。如果我將其重寫為query := `SELECT column_name FROM table_name        WHERE column1_name = %d AND column2_name = %d` % val1我得到(mismatched types string and int)它告訴我元組是問題之一。如果我首先將參數(shù)轉(zhuǎn)換為字符串,我會得到 (operator % not defined on string)在 python 中,你會做類似的事情query = """SELECT column_name FROM table_name    WHERE column1_name = %d    AND column2_name = %d""" % (val1, val2)或者query = """SELECT column_name FROM table_name    WHERE column1_name = %s    AND column2_name = %s""" % (val1_string, val2_string)我知道我可以將值轉(zhuǎn)換為字符串并使用 連接"STRING" + var + "STRING",但與 python 版本相比,這似乎非常混亂。Go 中 Python 代碼的等價物是什么?具體包括元組部分,并連接一個字符串和一個整數(shù)。
查看完整描述

1 回答

?
函數(shù)式編程

TA貢獻1807條經(jīng)驗 獲得超9個贊

< 由于注入漏洞而對 SQL 語句使用字符串插值的標準警告 >


你可以用它fmt.Sprintf來處理這個。


query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`,

                     someNumber, someString)

為避免注入問題,請將您的第一個代碼編寫為:


query := `SELECT column_name FROM table_name

    WHERE column1_name = %d AND column2_name = %d`


rows, err := db.Query(query, val1, val2)


查看完整回答
反對 回復 2021-12-27
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號