2014-01-20 26 views
-1

我有一個像下面這樣的Python腳本。它將接收參數並將在數據庫中進行查詢。但是我不知道如何將變量abcd傳遞給下面提到的SQL語句。如何在Python中傳遞變量到SQL

ABCD = sys.argv中[3]

cursor = db.cursor() 
cursor.execute("SELECT COUNT(id) FROM ticket WHERE " 
       "status <> 'closed' AND version = 'abcd' AND id IN (%s)" % ','.join(tickets)) 

我試圖與%s不同的選項。但所有拋出的語法錯誤。我對Python很陌生。任何幫助表示讚賞。

回答

0

你可以找到如何在Django Documentation

我認爲這種做法將有助於您運行參數原始的SQL語句的例子:

cursor = db.cursor() 
cursor.execute("SELECT COUNT(id) FROM ticket WHERE status <> 'closed' AND version = 'abcd' AND id IN (%s)", [','.join(tickets)]) 
+0

它與縮進錯誤而失敗.. –

+0

則可以修復縮進錯誤?這段代碼是否在一個函數中? – avenet

0

我認爲你需要得到string formating權。

嘗試是這樣的:

query = "SELECT count(id) FROM ticket WHERE version = %(version)s and id IN %(tpl)s" % {'version': 1, 'tpl': (1, 2, 3, 4)} 

cursor.execute(query)