Проблема с использованием переменной в выражении Sqlite3 - PullRequest
2 голосов
/ 06 июля 2011

У меня проблема с проектом Python 2.7.

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

import sqlite3 import Trailcrest

conn = sqlite3.connect('roster.paw')
c = conn.cursor()

def Lantern(AI):
    """Pulls all of the data for the selected user."""
    Trailcrest.FireAutoHelp = c.execute("""select fireautohelp 
                                             from roster 
                                            where index = ?;""", (AI,) ).fetchall()

Ошибка:

> Traceback (most recent call last):   
> File "<pyshell#4>", line 1, in <module> Lantern(1)
> File "C:\Users\user\MousePaw Games\Word4Word\PYM\Glyph.py", line 20, 
> in Lantern
>     Trailcrest.FireAutoHelp = c.execute("""select fireautohelp from roster where index = ?;""", (AI,)).fetchall()
> OperationalError: near "index": syntax error

1 Ответ

6 голосов
/ 06 июля 2011

Как отмечает Томас К. в комментарии, index - это ключевое слово SQL.
Вы можете переименовать этот столбец или заключить в обратные ноты:

Trailcrest.FireAutoHelp = c.execute("""select fireautohelp 
                                         from roster 
                                        where `index` = ?;""", (AI,) ).fetchall()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...