2016-08-12 2 views
0

Я получаю ошибку: sqlite3.OperationalError: near "%": syntax error , когда я пытаюсь запустить следующий код. импорт sqlite3sqlite3.OperationalError: рядом с "%": синтаксическая ошибка?

def getFromDB(DBname,table, url): 
    conn = sqlite3.connect(DBname) 
    cursor = conn.cursor() 
    sql = '''SELECT * FROM %s WHERE URL=%s''' 
    stuff = cursor.execute(sql, (table,url)) 
    stuff = stuff.fetchall() 
    return stuff 

url = 'http://www.examplesite.com/' 
getFromDB('AuthorData.sqlite','forbes',url) 

Я использую параметры в моем SQL запросе с помощью %s. Спасибо за помощь!

+2

Модуль [sqlite3] (https://docs.python.org/3/library/sqlite3.html) использует '' в качестве заполнителя?. –

+0

Пробовал, что. Я получаю ту же ошибку, кроме вместо '%' Он показывает '?'. –

+1

Ах да, пропустил, что вы пытаетесь передать идентификатор (имя таблицы). Это не будет работать с использованием заполнителей. Это необходимо для форматирования строки. Например, http://stackoverflow.com/questions/3247183/variable-table-name-in-sqlite. –

ответ

0

Вы можете использовать:

sql = '''SELECT * FROM {0} WHERE URL= {1}'''.format(table, url) 
Смежные вопросы