Использование переменной Python в запросе MySQL

Я пытаюсь написать функцию, которая принимает переменную, записанную в функцииplaceholder() написано ниже, а затем использует это вMySQL запросы. Я написал пример ниже:

import MySQLdb
connection = MySQLdb.connect(host = "localhost", user = "root", 
                   passwd = "", db = "cars")
cursor = connection.cursor()

def placeholder(placeholder_variable):
    sql = "TRUNCATE TABLE %s"
    cursor.execute(sql, placeholder_variable)

placeholder('car_brands')

Когда я пытаюсь запустить эту программу, я получаю следующую ошибку:

ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''car_brands'' at line 1")

Это для университетского задания и ДОЛЖНО использоватьplaceholder('variable') формат для получения переменной. Я потратил буквально часы на поиск в Интернете, пытаясь найти решение этой проблемы, пожалуйста, помогите: /

Ответы на вопрос(2)

Решение Вопроса
sql = "TRUNCATE TABLE " + placeholder_variable + ";"
cursor.execute(sql)

не могу использоваться для метаданных с MySQL. Вам нужно будет продезинфицировать значение и заменить его обычным образом.

 Veiocity20 мая 2013 г., 14:33
Спасибо за быстрый ответ. Я только новичок в программировании и не уверен, как бы я это сделал. Не могли бы вы помочь мне?
 Veiocity20 мая 2013 г., 14:52
Я только что провел некоторое исследование о том, что такое регулярное выражение, но я до сих пор нене понимаю, как использовать один для того, что мне нужно. Есть ли шанс, что вы могли бы дать мне пример кода? Я был бы очень признателен. Это новость, как у новичка, но это задание должно быть выполнено через 24 часа: S
 glglgl21 мая 2013 г., 13:34
Пока нет пользовательского ввода, который используется в этом месте, санитария является необязательной в этом месте. Чтобы оставаться более гибким, было бы целесообразно поставить обратную галочку вокруг переменной, например.sql = "TRUNCATE TABLE `" + placeholder_variable + "`"
 Ignacio Vazquez-Abrams20 мая 2013 г., 14:35
Используйте регулярное выражение, чтобы убедиться, что нет символов, которые не должныбыть там, а затем заменить его в обычном режиме.

Ваш ответ на вопрос