我正在嘗試使用 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)

神不在的星期二
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=?
.?
- 2 回答
- 0 關注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消