我正在尝试使用 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条经验 获得超12个赞
该错误告诉您您正在向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 关注
- 102 浏览
添加回答
举报
0/150
提交
取消