2013-12-12 3 views
1

Я пытаюсь использовать Python для выполнения запроса SQLite. Я могу получить желаемый результат в SQLite, используяSQLite-запрос с Python

SELECT Four FROM keys2 WHERE One = B 

Как это сделать в Python?

Я пытаюсь

c = conn.cursor() 

print "Opened database successfully"; 
x = c.execute("SELECT Four FROM keys2 WHERE One = B") 
print x 

conn.close() 

Но я получаю сообщение "sqlite3.OperationalError: нет такой колонки: B". Я пытаюсь выбрать запись в столбце 4, где один столбец B. Я пробовал несколько методов безрезультатно.

ответ

2

питания значение с помощью параметризованную SQL:

x = c.execute("SELECT Four FROM keys2 WHERE One = ?", "B") 

Проблема с SQL вы писали, что значение B должно быть заключено в кавычки. Так

x = c.execute("SELECT Four FROM keys2 WHERE One = 'B'") 

также работали, но лучше всегда использовать параметризованную SQL (для защиты от инъекции SQL), и пусть sqlite3 делать кавычки для вас.

+0

Когда я запустил, я получаю следующий . Нужно ли преобразовать этот тип? Это текстовый тип в sqlite. – user808996

+0

Добавлена ​​печать x.fetchall() и выглядит так, как будто она работает. благодаря – user808996

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