python操作mysql时,sql语句中的变量处理问题。
使用mysqldb来连接mysql,执行某sql语句,其中含有变量,如下,为何会报出错误?
value = [1,'aa']
table = "table1"
sql = "insert into "+table+" values(%s,%s)"
cursor.excute(sql,value)
或者如下:
value = ['table1',1,'aa']
cursor.excute("insert into %s values(%s,%s)",value)
也报出错误。
请问像这种变量形式应该怎么处理?
[解决办法]
value不是关键字
sql里的values是关键字
用values(%s,%s) 而不是values(%d,%s)
比如 MySQLdb
MySQLdb will convert it to a SQL literal value
http://mysql-python.sourceforge.net/MySQLdb.html