我在Python 2.7 / SQLite 3程序中有以下功能,它的工作方式与我期望它的工作方式相同:
import sqlite3 as internet_database
def database_document_input(document_title, document_date):
con = internet_database.connect('internet_drafts.db')
with con:
con.row_factory = internet_database.Row
cur = con.cursor()
cur.execute("CREATE TABLE if not exists Internet_Drafts (Document_Title text, Document_Date int)")
cur.execute("INSERT INTO Internet_Drafts VALUES (?, ?)", (document_title, document_date))
cur.execute("SELECT * FROM Internet_Drafts")
rows = cur.fetchall()
for row in rows:
print "%s %d" % (row["Document_Title"], row["Document_Date"])
我希望打印出来。
然而,当我将它分成两个单独的函数时,打印功能失败;它不会打印任何东西。没有错误消息,但它不会打印任何内容。
我所做的是提取原始函数的最后四行,并创建:
def database_document_print():
con = internet_database.connect('internet_drafts.db')
with con:
con.row_factory = internet_database.Row
cur = con.cursor()
cur.execute("SELECT * FROM Internet_Drafts")
rows = cur.fetchall()
for row in rows:
print "%s %d" % (row["Document_Title"], row["Document_Date"])
当我打电话时没有任何反应。
此函数遵循原始输入函数,因此我知道数据将被放入数据库中。
当我注入此测试语句时:
print "Made it this far"
在每行代码之后,它会打印出来,所以我知道整体流程和语法都有效。但由于某种原因,SELECT语句和/或打印功能在此配置中不起作用。
有人可以告诉我我搞砸了什么,或者我错过了什么?
编辑:问题是我在INSERT之后忽略了提交。