我正在尝试执行如下代码来注册具有给定名称的玩家,但我无法让参数 name
执行任何操作...我认为 %s
是将字符串插入数据库的变量,但它似乎不起作用。
import psycopg2
def registerPlayer(name):
"""Registers new player."""
db = psycopg2.connect("dbname=tournament")
c = db.cursor()
c.execute("insert into Players values (%s);")
db.commit()
db.close()
registerPlayer("Butter")
当我运行它时,我收到错误消息:
ProgrammingError: syntax error at or near "%"
LINE 1: insert into Players values (%s);
最佳答案
您实际上尚未将参数传递到执行方法中。
c.execute("insert into Players values (%s);", (name,))
关于Python 和 PostgreSQL : Function to insert variable arg into table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33082031/