【问题标题】:Psycopg2 (curr.execute) Is returning NONE pythonPsycopg2 (curr.execute) 返回 NONE python
【发布时间】:2017-11-30 09:17:01
【问题描述】:

我已经编写了一个脚本来更新我在 psycopg2 中的员工表,但是更新没有发生,因为 currr.execute 正在返回一个 None 对象。

我的代码

            connm = psycopg2.connect(database="database", user = "user", password = "pass", host = "localhost", port = "5432")
            connm.autocommit = True
            sql = """ UPDATE employee SET name = %s WHERE phone_number = %s"""
            curr = connm.cursor()
            username = "Mike"
            query = "+0123456789"
            abc = curr.execute(sql, (username, query))
            print abc
            connm.commit()
            curr.close()

这个 abc 对象返回 None。

请帮助我! 提前致谢!

【问题讨论】:

  • 您希望打印什么?如果你想要一个结果,我认为你有更多的改变,而不仅仅是添加 fetch。也许更新中的回归?
  • @ChrisTravers 我想检查我的 pgadmin 中返回的内容我一直在检查更新是否发生。

标签: python sql psycopg2 psql


【解决方案1】:

引用"Psycopg – PostgreSQL database adapter for Python - execute command":

该方法返回无。如果执行了查询,则可以使用 fetch*() 方法检索返回的值

然后,看起来不错。恭喜:)

已编辑关于没有效果:

你能在数据库上测试你的查询吗?

my_raw_query=curr.mogrify(sql, (username, query))
print my_raw_query

检查查询是否正常并将查询复制粘贴到数据库中以再次检查。

【讨论】:

  • 在 pg 管理员中手动执行的查询工作的查询是 . " UPDATE employee SET name = 'D****r' WHERE phone_number = '+ 9*****6 (M) '; " 但是通过 psycopg2 它没有发生!
  • 您确定使用的是同一个数据库吗?请仔细检查连接字符串。
  • 另外,您是否尝试捕获异常? initd.org/psycopg/docs/module.html#exceptions
  • 没有异常或错误只是更新没有发生我已经尝试了一切!
猜你喜欢
  • 2022-12-12
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 2013-04-07
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多