所以,我要做的是重构一些用Python编写的旧代码,在Go中生成一个新的API。 Python中的查询如下所示:
query = 'UPDATE info 'SET jsonField = JSON_REPLACE(jsonField, "$.content", null, "$.payload", null), 'field2 = %s ' WHERE Id = %s AND Id2 = %s AND Id3 = %s'
因此,为了在Golang工作,我将其更改为:
UPDATE info SET jsonField = JSON_REPLACE(jsonField, "$.content", null, "$.payload", null), field2 = ? WHERE Id = ? AND Id2 = ? AND Id3 = ?
执行查询的代码:
stmt, err = db.Prepare(query)
if err != nil {
return opInfo, err
}
defer stmt.Close()
result, err := stmt.Exec(field2, Id, Id2, Id3)
if err != nil {
return opInfo, err
}
fmt.Printf("\n query being executed: %s", query)
opInfo, err = result.RowsAffected()
fmt.Printf("\n modified Rows: %v", opInfo)
if err != nil {
return opInfo, err
}
那么,问题出在哪里?在Go中,opInfo值始终为0,没有任何更改,但没有错误。 我已经检查了我传递的值是否与数据库中的值不同,标识符是否正确,“field2”这是一个带有特殊字符的长字符串,但这就是为什么我像blob一样发送它
即使这是问题所在,我也尝试单独修改数据库中的json,并更新“field2”以检查其中一个是否导致了问题。两次尝试都失败了
我是否缺少Go标准库中的数据库驱动程序
此外,没有解决方法,我不会从MySQL更改为无SQL数据库
在Python中,我使用了:
cursor.execute(query, (field2, Id,Id2, Id3))
这件事耽搁了几个星期,请帮忙
试试这个:
相关问题 更多 >
编程相关推荐