带有python变量的Sql语句

时间:2014-07-05 06:03:12

标签: python sql

我试图通过python执行sql语句。但这不起作用:

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)

我做错了什么?

2 个答案:

答案 0 :(得分:2)

尝试运行

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

如果存在多个参数,则需要将参数作为元组传递。

答案 1 :(得分:1)

我认为您需要将参数作为元组传递,即使只有一个:

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

或者:

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