2014-07-05 50 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,))