如何将字符串变量插入到这个长python SQL字符串中?
我有一个存储在python字符串中的MySQL查询。看起来是这样的,如何将字符串变量插入到这个长python SQL字符串中?,python,mysql,string,Python,Mysql,String,我有一个存储在python字符串中的MySQL查询。看起来是这样的, query = """ SELECT colA, colB FROM table WHERE colC = '1' """ 假设我想插入字符串变量来构造相同的查询 我可以做类似的事情吗 Var1 = 'colA' Var2 = 'colB' query = """ SELECT %s, %s FROM table WHERE colC = '1' """, Var1,
query = """ SELECT colA, colB
FROM table WHERE colC = '1' """
假设我想插入字符串变量来构造相同的查询
我可以做类似的事情吗
Var1 = 'colA'
Var2 = 'colB'
query = """ SELECT %s, %s
FROM table WHERE colC = '1' """, Var1, Var2
如何在python中实现这一点?我使用的是Python 2.7您不能将列名用作SQL参数;您必须手动插入名称;您可以为此使用:
query = """ SELECT `{}`, colB
FROM table WHERE colC = '1' """.format(Var1)
`
占位符周围的{}
反勾用于确保列标识符被解释为这样,即使它包含空格或是关键字名称
多列使用多个占位符:
query = """ SELECT `{}`, `{}`
FROM table WHERE colC = '1' """.format(Var1, Var2)
执行此操作时要格外小心,并始终预先验证
Var1
是否为有效的列名。不要盲目接受用户输入,否则您将无法免受SQL注入攻击。有人能解释为什么投反对票吗?我相信这是一个常见的问题。如果我有两个变量-Var1
和Var2
,该怎么办。说Var2=colB
。代码是什么样子的?我已经相应地编辑了我的问题。@user3293156:使用多个{}
占位符,并将多个参数传递给str.format()
方法:“从…”中选择“{}”,“从…”。format(Var1,Var2)
。谢谢。你帮了大忙。