1

我試圖通過其他腳本進行數據庫連接。 但腳本沒有正常工作。UnboundLocalError:分配之前引用的局部變量「行」

,如果我這樣做對行的「打印」然後我得到的值「空」

但是,如果使用了「選擇事件*」查詢,然後我從表事件的結果。

導入數據庫

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 
+2

更正您代碼的縮進。 –

回答

3

既然你之前不宣佈「行」您「嘗試:」它不會被定義的塊,如果有一個例外。嘗試將rows = []放在try以上。

+0

是的..我們解決了「分配之前引用的」UnboundLocalError:局部變量「行」問題。 Whoohoo! – desimusxvii

+0

是啊,謝謝!但我怎麼現在可以在數據庫中獲得我的查詢?我也在我的代碼中尋找縮進,但它看起來不錯? – patrick

+0

我們會看起來像你得到一個例外。你能打印這個結果嗎?這是str(sys.exc_info()) – desimusxvii

相關問題