使用python操作mysql数据库的时候,被一个问题困扰了好久,原因是数据库里面有个表按日期分的。也就是每天一个新表,数据在入库的时候,表名在python程序里面是一个变量,同时表里面字段有很多,本以为轻松愉快的就能解决,比如这样。
cur.execute("INSERT INTO table_%s VALUES(%s, %s, %s, %s, %s”,(date,v1,v2,v3,v4))
程序报错,原因是execute自动对变量转义了,表名变成这样 table_'20161017' 这样的格式,sql执行报错了。
本来以为要自己转义字段值的时候,突然想到,execute对变量转义的标志是以“,"号格式化字符串,所以尝试了下面这种写法
cur.execute("INSERT INTO table_%s" % date + " VALUES(%s, %s, %s, %s, %s”,(v1,v2,v3,v4))
问题解决~