将python / sqlite函数拆分为两部分 - 不起作用

时间:2013-06-04 15:40:16

标签: python sql python-2.7 sqlite

我在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之后忽略了提交。

0 个答案:

没有答案