【发布时间】:2020-05-15 20:05:26
【问题描述】:
这是我的代码。我只想更新书名和作者姓名,我希望其他参数值保持不变。我收到如下错误。我应该通过什么不改变参数?我试图将变量名作为 year 和 isbn 传递,但它没有用。我搜索了很多类似的问题,但没有帮助。
def update(id, title, author, year, isbn):
conn = psycopg2.connect("dbname='' user= password='' host='localhost' port='5432' ")
cur = conn.cursor()
cur.execute("UPDATE dnr SET title=%s, author=%s, year=%s, isbn=%s WHERE id=%s", (title, author, year, isbn, id))
conn.commit()
conn.close
update(1, "The Sky", "Jonh Smith")
错误:
TypeError: update() missing 2 required positional arguments: 'year' and 'isbn'
【问题讨论】:
-
在python函数方面,您需要为参数设置默认值。我推荐
None。其他人需要帮助了解如何正确获取 sql 查询 -
实际上,我尝试了“无”,但随后它将剩余的列打印为“无”,应该保持与以前一样。顺便说一句,它适用于“搜索”功能,将不变的参数(年份,isbn)设置为无,但我认为“更新”功能需要一些不同的东西。
-
如果您的问题得到解答,请将其标记为solved
标签: python postgresql parameter-passing psycopg2