Атрибут sqlite execute только для чтения - PullRequest
3 голосов
/ 08 ноября 2011

Я использую sqlite для создания и подключения к sqlite db foo.db

Когда я пытаюсь сделать вставку в БД. Я получаю следующее AttributeError

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

Не могу найти информацию об этой ошибке. Кто-нибудь знает, что означает это исключение?

Я использую Python 2.7 с virtualenv.

Ниже приведен код, который я пытаюсь выполнить, предположим, что дата является строкой.

        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 ]

4 голосов
/ 08 ноября 2011

Вы пытаетесь изменить атрибут курсора. Вы хотите вызвать метод курсора.

должно быть

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

Не

    cur.execute = ('insert ...
1 голос
/ 08 ноября 2011

Кажется простой синтаксической ошибкой.Вы пытаетесь установить значение для команды execute, в то время как вам нужно просто вызвать ее: удалите '=', и все должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...