python中的SQLite在提交命令后不更新DB

时间:2017-03-02 16:47:52

标签: python python-2.7 sqlite

我编写了这个脚本,用Python 2.7中的sqlite更新SQL DB 作为函数的输入,我们有一个十元素列表,有些元素可以是None或者不是,我只想更新not None元素。

这里的问题,当脚本运行时它不会返回任何错误,即使我尝试了很少的" print" line xx""调试并检查脚本是否通过if,Update和commit命令。结果总是好的,但DB不会更新。

*注意,在同一程序中的另一个函数中,我从同一个DB读取数据,这样我就可以很好地读取数据库了。

def update_coin(new_data):
    #data_coin is a 10 element list

    id = new_data[0]

    with con:

        cur = con.cursor()

        if new_data[3] is not None:
            cur.execute("UPDATE COIN_KM SET KM_NUM =? WHERE ID_KM = ?", (new_data[3], id))

        if new_data[4] is not None:
            cur.execute("UPDATE COIN_KM SET ID_NUMIS =? WHERE ID_KM = ?", (new_data[4], id))

        if new_data[5] is not None:
            cur.execute("UPDATE COIN_KM SET DDATE =? WHERE ID_KM = ?", (new_data[5], id))

        if new_data[7] is not None:
            cur.execute("UPDATE COIN_KM SET TITLE =? WHERE ID_KM = ?", (new_data[7], id))

        if new_data[8] is not None:
            cur.execute("UPDATE COIN_KM SET DESCRIPTION =? WHERE ID_KM = ?", (new_data[8], id))

        if new_data[10] is not None:
            cur.execute("UPDATE COIN_KM SET MATERIAL =? WHERE ID_KM = ?", (new_data[10], id))

        con.commit()

任何人都可以弄清楚这里有什么问题?早些时候我有类似的脚本,并没有这个问题。 *我在使用Ubuntu的VM中工作,我将777的权限更改为我的数据库和脚本。 *我用root这样的终端运行脚本。

1 个答案:

答案 0 :(得分:0)

感谢您的评论,您帮我解决了问题!

在输入中,id = new_data [0]始终为None。现在一切都很顺利。