gpt4 book ai didi

mysql - 预期 0 个参数,得到 1 个

转载 作者:IT王子 更新时间:2023-10-29 01:38:27 31 4
gpt4 key购买 nike

我收到一个错误,我在 Internet 上找不到任何修复程序。我是 go-lang 的新手,在我的 SQL 语句中看不到任何错误。我正在 go-lang 中执行更新查询。代码是:

sql = "UPDATE tablename SET id1='' WHERE id2=" +fmt.Sprint(v.acctId)
_, err = db.Exec(sql, nil)

id1 和 id2 都是 varchar。我将 SQL 语句放在一个字符串中然后执行它。我尝试删除其中一个 ID,但它仍然显示错误。我还注意到,由于某种原因,v.acctId 的值并不总是相同。我不知道为什么会这样,因为当我在 MySQL 工作区上尝试 SQL 语句时,它工作正常。

最佳答案

您收到错误是因为您将 nil 作为第二个参数传递给 Exec 而您的查询没有参数占位符(postgres 中的 $1? 我相信在 mysql 中)已指定。

而不是做这样的事情

db.Exec("UPDATE tablename SET id1='' WHERE id2=?", v.acctId)

此外,您几乎不应该通过连接字符串来构造查询,因为这会导致 SQL 注入(inject)。所以请使用参数占位符。

如果你想执行一个没有参数的查询,那么做你正在做的只是不要传递 nil 作为第二个参数。

db.Exec(sql)

关于mysql - 预期 0 个参数,得到 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47094278/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com