我正在嘗試使用 Go 執(zhí)行查詢,但我無法請求任何查詢,因?yàn)樗粩嗟亟o我同樣的錯(cuò)誤。我已經(jīng)多次更改查詢,但這似乎沒有幫助。另外,我還更改了 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 行。不幸的是,錯(cuò)誤告訴我不應(yīng)該有返回,我期望返回 1 行。
2 回答
紅顏莎娜
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
該錯(cuò)誤告訴您您正在向QueryRow它傳遞一個(gè)不符合預(yù)期的參數(shù)。
您的 SQL 語句沒有任何占位符,因此不需要任何占位符,但您給它之一id。只是改變:
row := db.QueryRow(sqlStatement, id)
到:
row := db.QueryRow(sqlStatement)
神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
sqlStatement?:=?`SELECT?naam?FROM?medewerker?WHERE?naam="jansen"` row?:=?db.QueryRow(sqlStatement,?id)
給定的sql語句沒有參數(shù)。以下包含占位符的 sql 語句可能效果更好。
sqlStatement?:=?`SELECT?naam?FROM?medewerker?WHERE?medewerkernummer?=?` row?:=?db.QueryRow(sqlStatement,?id)
根據(jù)您的id-column 的命名方式,您可能必須更改naam=?為idColumn=?.?
- 2 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
