pymysql 动态传表名和key,用占位符的坑
pymysql占位符的用法
sql="update table set key=%s"
cursor.execute(sql, value)
如果只需要传值的话,这样是没问题的
但是也想要传表名或者key的话
按照定向思维,我是这么写的
sql="update %s set %s=%s"
temp=(table, key, value)
cursor.execute(sql, temp)
但发现这样一直没有执行sql
后来查资料发现,用占位符传值这种形式,会自动带上单引号'
如果是只需要传值,那么这里的sql是正常的
update table set key="value"
但如果是表名和key,sql会变成这样
sql="update "table" set "key"="value"
这样的话,是执行不了的
提前把表名和key拼接好
sql="update" + table + " set " + key + "=%s"
cursor.execute(sql, value)