Python3 SQL更新未提交

2024-04-25 19:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下Python3代码:

def updateDB(databaseLoc, post_id, new_class):
    conn = sqlite3.connect(databaseLoc)
    curs = conn.cursor()
    vals = [new_class, post_id, ]
    curs.execute('UPDATE POST SET CLASSIFICATION=? WHERE POSTID=?', vals)
    conn.commit()
    conn.close()

有时也叫

if js[0]['data']['children'][0]['data']['ups'] > 2000:
    print(post_id, "made it")
    updateDB('retrieved_data.db',1,post_id)

但是,即使在更新和提交之后,当我进入数据库时,没有任何变化(分类仍然设置为初始值0)。我已经手动测试了SQL字符串,效果很好。你知道吗

我有类似的代码插入,工作良好:

def pushToDB(databaseLoc, posts):
    conn = sqlite3.connect(databaseLoc)
    curs = conn.cursor()
    for p in posts:
        vals = [p.id, p.title, p.s, p.time, p.day, "", p.first, p.second, p.image, 0, ]
        try:
            curs.execute('INSERT INTO POST VALUES(?,?,?,?,?,?,?,?,?,?)',vals)
        except:
            pass
    conn.commit()
    conn.close()

Python3更新是否还需要执行其他步骤?我已经浏览了文档,它没有指定任何附加内容,但是它只提到了updateonce,只是忽略了它。我在python中也很少发现更新示例


Tags: 代码idnewdatadefconnpostsqlite3
1条回答
网友
1楼 · 发布于 2024-04-25 19:35:42

函数的签名为:

def updateDB(databaseLoc, post_id, new_class):

但你似乎在说:

updateDB(databaseLoc, new_class, post_id)

导致每次都试图更新post wherePOSTID = 1,这可能不是您想要的。你知道吗

相关问题 更多 >

    热门问题