2014-07-05 79 views
0

我想通過python執行sql語句。但是,這並不工作:SQL語句與python中的變量

cursor.execute("UPDATE setting set foo=%s WHERE bar=%s", 4, str(sys.argv[1])) 

這也不起作用:

t = ("4",sys.argv[1]) 
cursor.execute('UPDATE setting set foo=? WHERE bar=?', t) 

但是這一個工程:

cursor.execute('UPDATE setting set foo=%s WHERE bar="something"', 3) 

我在做什麼錯?

+0

你有錯誤信息的任何細節?在將它插入SQL之前,sys.argv [1]等於什麼? –

回答

2

嘗試運行

cursor.execute("UPDATE setting set foo=%s WHERE bar=%s", (4, str(sys.argv[1]))) 

的參數需要作爲元組傳遞,如果有多個元組。

1

我認爲你需要傳遞的參數作爲一個元組,即使只有一條:

cur.execute("insert into people values (?, ?)", (who, age)) 

或者:

cur.execute("insert into people values (?, 100)", (who,))