【发布时间】:2017-01-03 16:58:45
【问题描述】:
def bul():
global entry_bul
pencere = Toplevel()
etiket= Label(pencere,text="\n# Which record do you want to find?Please enter the Student ID number.\n")
etiket.pack()
entry_bul=Entry(pencere)
entry_bul.pack()
btn = Button(pencere,text="Find the student",bg="orange",fg="navy",command=sorgula)
btn.pack()
def sorgula():
conn = connect(database="dorm", user="postgres", password="605394", host="127.0.0.1", port="5432")
print "Opened database successfully"
cur = conn.cursor()
cur.execute("SELECT * FROM pers_info, school_info, room_info WHERE ID_num = (%s) ;", (entry_bul.get(),));
rows = cur.fetchall()
for row in rows:
print row[0], row[1], row[2], row[3],row[4]
print "Operation done successfully";
conn.commit()
conn.close()
这些函数运行没有错误。但它没有在屏幕上给出 for 循环的输出。 屏幕上的结果是:
Opened database successfully
Operation done successfully
【问题讨论】:
-
您输入的数据是否类似代码?那么没有数据也就不足为奇了:你不打电话给
conn.commit;通过():conn.commit()调用函数。如果您只从数据库中读取,则无需提交。 -
使用更好的标题——“我看不到输出”对于潜在的答案不是很有用。
-
我修复了 commit() 但它仍然在做同样的事情。我认为 "WHERE ID_num = (%s) ;", (entry_bul.get(),)" 部分有问题。就像它没有看到 entry_bul.get()
-
我也尝试了类似的基本代码。有用。正如我所说,我认为 t 与 "ID_num = (%s) ;", (entry_bul.get(),));" 部分有关。
-
这是在做什么?
cur.execute("SELECT * FROM pers_info, school_info, room_info WHERE ID_num = (%s) ;", (entry_bul.get(),));
标签: python postgresql python-2.7