亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

恐慌:sql:預期 0 個參數,得到 1 個

恐慌:sql:預期 0 個參數,得到 1 個

Go
天涯盡頭無女友 2023-06-26 16:35:15
我正在嘗試使用 Go 執行查詢,但我無法請求任何查詢,因為它不斷地給我同樣的錯誤。我已經多次更改查詢,但這似乎沒有幫助。另外,我還更改了 Query 中的 QueryRow,不幸的是這也沒有幫助。func test123() {    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/vitaintellectdb")    if err != nil {        panic(err.Error())    }    id := 1    var col string    sqlStatement := `SELECT naam FROM medewerker WHERE naam="jansen"`    row := db.QueryRow(sqlStatement, id)    err2 := row.Scan(&col)    if err2 != nil {        if err2 == sql.ErrNoRows {            fmt.Println("Zero rows found")        } else {            panic(err2)        }    }}QueryRow 旨在返回 1 行。不幸的是,錯誤告訴我不應該有返回,我期望返回 1 行。
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

該錯誤告訴您您正在向QueryRow它傳遞一個不符合預期的參數。

您的 SQL 語句沒有任何占位符,因此不需要任何占位符,但您給它之一id。只是改變:

row := db.QueryRow(sqlStatement, id)

到:

row := db.QueryRow(sqlStatement)


查看完整回答
反對 回復 2023-06-26
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

sqlStatement?:=?`SELECT?naam?FROM?medewerker?WHERE?naam="jansen"`
row?:=?db.QueryRow(sqlStatement,?id)

給定的sql語句沒有參數。以下包含占位符的 sql 語句可能效果更好。

sqlStatement?:=?`SELECT?naam?FROM?medewerker?WHERE?medewerkernummer?=?`
row?:=?db.QueryRow(sqlStatement,?id)

根據您的id-column 的命名方式,您可能必須更改naam=?idColumn=?.?


查看完整回答
反對 回復 2023-06-26
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號