我正在尝试通过其他脚本建立数据库连接。 但是脚本无法正常工作。
如果我在行上执行“打印”,那么我会得到值“null”
但是如果我使用“select * from incidents”查询,那么我会从表 incidents 中得到结果。
导入数据库
rows = database.database("INSERT INTO incidents VALUES(3 ,'test_title1', 'test', TO_DATE('25-07-2012', 'DD-MM-YYYY'), CURRENT_TIMESTAMP, 'sector', 50, 60)")
#print database.database()
print rows
database.py 脚本:
import psycopg2
import sys
import logfile
def database(query):
logfile.log(20, 'database.py', 'Executing...')
con = None
try:
con = psycopg2.connect(database='incidents', user='ipfit5', password='test')
cur = con.cursor()
#print query
cur.execute(query)
rows = cur.fetchall()
con.commit()
#test row does work
#cur.execute("INSERT INTO incidents VALUES(3 ,'test_titel1', 'test', TO_DATE('25-07-2012', 'DD-MM-YYYY'), CURRENT_TIMESTAMP, 'sector', 50, 60)")
except:
logfile.log(40, 'database.py', 'Er is iets mis gegaan')
logfile.log(40, 'database.py', str(sys.exc_info()))
finally:
if con:
con.close()
return rows
最佳答案
因为你没有在你的“try:” block 之前声明“行”,如果有异常,它不会被定义。尝试将 rows = []
放在 try
之上。
关于python - 未绑定(bind)本地错误 : local variable 'rows' referenced before assignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12308706/