Python SQLite3 Проблема с? - PullRequest
       2

Python SQLite3 Проблема с?

1 голос
/ 04 ноября 2010

Я сейчас изучаю SQLite3 с Python. Я смотрю на руководство, и оно говорит мне сделать что-то вроде следующего:

data = (tablename, )
c.execute("CREATE TABLE IF NOT EXISTS ?(uid INTEGER PRIMARY KEY, title TEXT NOT NULL, duedate INTEGER NOT NULL, description TEXT, archived INTEGER)", data)

Однако я получаю сообщение об ошибке. Заявлено следующее:

sqlite3.OperationalError: near "?": syntax error

Что происходит?

1 Ответ

3 голосов
/ 04 ноября 2010

к сожалению, подстановка параметров DB-API ? не работает с именем таблицы, именем столбца ... и это одинаково для всех API БД в python.

Подстановка параметров DB-API просто работает для значения, как в SELECT * FROM table WHERE id = ?, поэтому вам придется выполнить форматирование строки или просто поместить таблицу имен непосредственно в строку.

query = "CREATE TABLE IF NOT EXISTS %s (uid INTEGER PRIMARY KEY, title TEXT NOT NULL, duedate INTEGER NOT NULL, description TEXT, archived INTEGER)" % table_name

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