无法从数据库获取结果-sqlite 3

时间:2019-12-08 09:02:04

标签: python sql

我正尝试在数据库中插入大量英语单词,并将结果返回。但是,当我查询数据库时,它什么也不返回。在此示例中,我省略了将文本文件输入数据库的操作,仅插入了一个字符串。但是,这也不显示在查询中。这是我的代码:

import sqlite3

def get_database_connection():
    return sqlite3.connect("myDatabase.db")

def commit():
    connection = get_database_connection()
    connection.commit()
    connection.close()

def table_exists(table):
    cursor = get_cursor()
    cursor.execute(''' SELECT count(name) FROM sqlite_master WHERE type='table' AND name='{0}' '''.format(table))
    my_bool = cursor.fetchone()[0]
    return my_bool


def get_cursor():
    connection = sqlite3.connect("myDatabase.db")
    cursor = connection.cursor()
    return cursor


def create_table(table):
    if table_exists(table):
        return
    cursor = get_cursor()
    cursor.execute("""CREATE TABLE {0}(
                        word text
                        )""".format(table))

def insert_english_words():
    #english_words = "english.txt"
    #words = process_words(english_words)
    table = "english"
    create_table(table)
    cursor = get_cursor()
    cursor.execute("INSERT INTO english VALUES ('HELLO')")
    #for word in words:
        #cursor.execute("INSERT INTO english VALUES ('{0}')".format(word))
    commit()

def get_data():
    cursor = get_cursor()
    cursor.execute("SELECT * FROM english")
    rows = cursor.fetchall()
    for row in rows:
        print(row)


def run():
    get_database_connection()
    insert_english_words()
    get_data()
    print("Done")


run()

1 个答案:

答案 0 :(得分:4)

创建表后必须提交。 在脚本生命周期中维护一个连接对象。您每次都在创建一个新的连接。