登录
首页 >  Golang >  Go问答

无法使 0 成为一个整数

来源:stackoverflow

时间:2024-03-22 12:55:27 465浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《无法使 0 成为一个整数》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我有一个简单的函数可以更新我的数据库。我使用 sqlite3,所以我使用 integer 字段作为 bool

这是这个函数:

func updateDevice(devID int64, videoPath string, active bool) {
        stmt, err := db.Prepare("UPDATE Devices SET CurrentVideo=?, Active=? WHERE ID=?")
        if err != nil {
                log.Fatalf("Error while preparing to update device with ID: %s: %s", devID, err)
        }

        res, err := stmt.Exec(videoPath, devID, active)
        if err != nil {
                log.Fatalf("Error while updating device with ID: %s : %s", devID, err)
        }
        rowsAff, _ := res.RowsAffected()
        if rowsAff > 0 {
                log.Printf("Successfully update device with ID: %v", devID)
        } else {
                log.Println("Didn't affect on any row")
        }
}

当我将 active 设置为 true 时,我收到一条消息,表明我成功更新了设备,但是当我想将 active 设置为 false 时,我收到此消息: didn't 影响任何 row 和数据库中,我仍然旧价值观。

为什么当我使用 false 作为 active 时,我无法更新此表?我做错了什么?


解决方案


在执行中,您必须按照与准备时相同的顺序传递值。

您正在准备此订单:

currentvideo=?, active=? where id=?

在我看来,在 exec 中,您已经颠倒了“active”和“devid”值。

func updateDevice(devID int64, videoPath string, active bool) {
        stmt, err := db.Prepare("UPDATE Devices SET CurrentVideo=?, Active=? WHERE ID=?")
        if err != nil {
                log.Fatalf("Error while preparing to update device with ID: %s: %s", devID, err)
        }

        res, err := stmt.Exec(videoPath, active, devID)
        if err != nil {
                log.Fatalf("Error while updating device with ID: %s : %s", devID, err)
        }
        rowsAff, _ := res.RowsAffected()
        if rowsAff > 0 {
                log.Printf("Successfully update device with ID: %v", devID)
        } else {
                log.Println("Didn't affect on any row")
        }
}

试试这个方法。

好了,本文到此结束,带大家了解了《无法使 0 成为一个整数》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>