python - 未绑定(bind)本地错误 : local variable 'rows' referenced before assignment

标签 python postgresql relational-database variable-assignment

我正在尝试通过其他脚本建立数据库连接。 但是脚本无法正常工作。

如果我在行上执行“打印”,那么我会得到值“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/

相关文章:

django - 防止在 django 模板中呈现 unicode 字符

mysql - 查询以获得关系数据库中每间酒店每间客房的最低价格

mysql - MongoDB、Mysql 和关系

python - Keras TensorBoard 可视化Conv Kernels

ruby-on-rails - 新数据不会持久保存到 Postgres 上的 Rails 数组列

sql - PostgreSQL:INSERT INTO 语法错误

mysql - 不计算 "LIMIT"中的某些列

python - 根据 Python 中单独列表中键的顺序,按键对字典列表进行排序

python manage.py 迁移 Django 错误

python - 将 DictVectorizer 与 sklearn DecisionTreeClassifier 结合使用