关于访问PostgreSQL服务器的python函数中变量的使用,我有一个问题。例如,以下内容:
def delete():
cur.execute(
"""DELETE FROM potluck
WHERE name = var_1;"""
但是,如果我想让update函数为var_1引入变量,我该怎么做?
例如,我希望我的函数采用以下形式:
def delete(var_1):
cur.execute(
"""DELETE FROM potluck
WHERE name = %s;""", (var_1))
然而,仅仅打字是行不通的。
另外,在这种情况下,当:
def delete(name, var_1):
cur.execute(
"""DELETE FROM potluck
WHERE %s = %s;""", (name, var_1))
我不希望“name”在插入字符串时有引号?
任何帮助都将不胜感激!
已解决:
我明白我做错了什么。我需要做的唯一更改是在变量1后添加逗号,因为: “对于位置变量绑定,第二个参数必须始终是序列,即使它包含单个变量。还要记住,Python需要一个逗号来创建一个单元素元组”。
例如:
这很管用。我得到的信息来自:
http://initd.org/psycopg/docs/usage.html#sql-injection
在第二种情况下,请参考下面使用AsIs的另一个答案。那很有效。例如:
这就是诀窍。谢谢!
要传递标识符,请使用
psycopg2.extensions.AsIs
相关问题 更多 >
编程相关推荐