首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用Python在sqlite数据库中插入数据

无法使用Python在sqlite数据库中插入数据
EN

Stack Overflow用户
提问于 2015-11-21 00:11:05
回答 1查看 169关注 0票数 -1

我正在尝试将一些数据保存在一个表中,如果它发生了变化,则更新该值。

代码语言:javascript
复制
def saveobject(obj): 

    save=(obj.field1, obj.field2, obj.field3)

    con = sqlite3.connect('test.db')

    with con:
        cur = con.cursor() 
        cur.execute("CREATE TABLE IF NOT EXISTS Users(field1 TEXT, field2 INT, field3 INT)")   
        allrows = cur.fetchall()
        print allrows
        if(len(allrows)==0):
            cur.execute("INSERT INTO Users VALUES(?,?,?)", save)
        else:
            for row in allrows: 
                if(obj.field1==row[0]):
                    if(obj.field2==row[1]):
                        print 'Object already Present'
                        break
                    else:
                        print 'Object field2 updated'
                        cur.execute("UPDATE Users set field2=(?) where field1=(?)", (obj.field2, obj.field1))
                       break
                else:
                    cur.execute("INSERT INTO Users VALUES(?,?,?)", save)   
                    print 'User added'

        print 'after ', cur.fetchall()

运行程序,验证该方法是否正确接收了对象(我验证了打印"save“并且一切正常),我得到了以下输出:

代码语言:javascript
复制
[]
after []

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-21 00:30:16

代码语言:javascript
复制
cur.execute("CREATE TABLE IF NOT EXISTS Users(field1 TEXT, field2 INT, field3 INT)")   
allrows = cur.fetchall()

for row in allrows:

allrows的长度始终为零,因为"create table“不返回任何行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33831188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档