在我们学习使用 pymysql 的时候有时需要把表名当做变量传递到 sql 语句中去执行,
然而我们的固定思维模式有时却限制了我们:
如: 我们知道传递变量可以用占位符 %s, 后面加上变量就行,
在 pymysql 中也有同样的问题, 我们在执行 sql 语句的时候可以把变量传递进去
类似:
- sql = 'insert into TabName +' value (%s %s)'
- cursor.execute(sql, [name,age])
如果我们的 TabName 也是变量的话我们就会习惯性的这样加
- sql = 'insert into %s +' value (%s %s)'
- cursor.execute(sql, [tabname,name,age])
然后这样报错了我们才知道这样不行, 然后再去查原因, 发现我们被自己的固定思维给限制住了 (反正我是这样的)
我也是在网上找了半天再找到了解决办法, 只要跳出这样的思维就行了
错误:
- sql = 'insert into %s +' value (%s %s)'
- cursor.execute(sql, [tabname,name,age])
改为:
- sql = 'insert into %s(name,age)' %TabName + 'value (%s)'
- cursor.execute(sql, [name])
这样就没问题了, 有时候我们是能解决这类似的问题的, 但是我们却是往往被自己的固定思维给坑了!
来源: http://www.bubuko.com/infodetail-2730442.html