sqlite属性execute是只读的

时间:2011-11-08 17:28:01

标签: python exception sqlite

我正在使用sqlite创建并连接到sqlite db foo.db

当我尝试插入数据库时​​。我得到以下AttributeError

AttributeError: 'sqlite3.Cursor' object attribute 'execute' is read-only

我似乎无法找到有关此错误的任何信息。有没有人知道这个例外意味着什么?

我正在使用带有virtualenv的python 2.7。

以下是我试图执行的代码,假设date是一个字符串。

        username = 'user'
        pwdhash = some_hash_function()
        email = 'user@foo.com'
        date = '11/07/2011'

        g.db = sqlite3.connect('foo.db')
        cur = g.db.cursor()            
        cur.execute = ('insert into user_reg (username,pwdhash,email,initial_date)\
                        values (?,?,?,?)',
                        [username,
                         pwdhash,
                         email,
                         date])
        g.db.commit()
        g.db.close()

由于

2 个答案:

答案 0 :(得分:4)

您正在尝试修改游标的属性。你想调用光标的方法。

应该是

    cur.execute('insert into user_reg (username,pwdhash,email,initial_date)\
                    values (?,?,?,?)',
                    [username,
                     pwdhash,
                     email,
                     date])

    cur.execute = ('insert ...

答案 1 :(得分:1)

似乎是一个简单的语法错误。 您只是要调用它时尝试为命令execute设置一个值: 删除'=',它应该没问题。