2010-10-31 2 views
1

Итак, я помещаю список из 25 кортежей с каждым кортежем, состоящим из 5 элементов, в базу данных sqlite. Каждый раз, когда я пытаюсь написать основной код, я получаю «apsw.SQLError: SQLError: near«? »: Синтаксическая ошибка« Вот код, который я запускаю. Имейте в виду, что это часть гораздо более масштабного серверного проекта для игры, поэтому некоторые из функций будут вам неизвестны.SQLite неопределенная синтаксическая ошибка

def writetable(self,blockoffset,matbefore,matafter,name,date): 
    self.blocklist.append((blockoffset,matbefore,matafter,name,date)) 
    if len(self.blocklist) > 25: 
     self.memcursor.executemany("INSERT OR REPLACE INTO main (?,?,?,?,?)",self.blocklist) 
     blocklist.clear() 
     print("Memory Database updated") 

ответ

2

Я считаю, что это должно быть:

self.memcursor.executemany("INSERT OR REPLACE INTO main VALUES (?,?,?,?,?)",self.blocklist) 
+0

* facepalm * Благодарим вас за беспокойство по поводу stackoverflow с этим вопросом. Хотя, я бы хотел, чтобы сообщение об ошибке было более конкретным. – Varriount

+0

вы всегда можете попробовать запустить команду failing в командной строке sqlite3, там, где я думаю, вы получите лучшие ошибки. –

0

Вы, наверное, забыли VALUES ключевое слово:

self.memcursor.executemany("INSERT OR REPLACE INTO main VALUES (?,?,?,?,?)",self.blocklist) 

Посмотрите here для правильного синтаксиса.

Смежные вопросы