2013-05-20 126 views
1

我正在嘗試編寫一個函數,該函數需要寫入以下所寫的函數placeholder()中的變量,然後在MySQL查詢中使用該變量。我已經寫了下面的例子:在MySQL查詢中使用Python變量

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')格式接收變量。我花了幾個小時搜索互聯網試圖找到一個解決方案,請幫助:/

回答

1
sql = "TRUNCATE TABLE " + placeholder_variable + ";" 
cursor.execute(sql) 
1

SQL參數不能用於元數據與MySQL。您需要清理該值並正常替換。

+0

感謝您的快速響應。我只是編程方面的新手,我不知道我會如何做到這一點。你能幫我解決嗎? – Veiocity

+0

使用正則表達式確保沒有不應該出現的字符,然後正常替換它。 –

+0

我剛剛做了一些關於正則表達式的研究,但我仍然不明白如何使用它來獲得我需要的東西。有什麼機會可以請給我一些示例代碼?我真的很感激。作爲一個新手,這個東西有點過頭了,但是這個任務是在24小時內完成的:S – Veiocity