首页 > 解决方案 > 使用 SQLITE3 制作的基本数据库

问题描述

我使用 sqlite3 在 python 中创建了一个基本数据库,它接收 3 个值并存储它们。现在问题出在哪里,当我创建一个应该输出值的函数时,终端上没有显示任何语法错误,也没有打印我的值。我猜这是一个小错误,但我无法发现它。

代码如下:

import sqlite3

def create_table():
    conn = sqlite3.connect("lite.db")    
    cur = conn.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS store (item TEXT, quantity 
    INTEGER, price FLOAT)")
    conn.commit()
    conn.close()

def insert(item, quantity, price):
    conn = sqlite3.connect("lite.db")
    cur = conn.cursor()
    cur.execute("INSERT INTO store VALUES ('?, ?, ?')", (item, quantity, 
    price))
    conn.commit()
    conn.close()

insert("Mug", 8, 6)

def view():
    conn = sqlite3.connect("lite.db")
    cur = conn.cursor()
    cur.execute("SELECT * FROM store")
    rows = cur.fetchall()
    conn.close()
    return rows

print(view())

再次没有显示错误消息,但没有显示我的值。

标签: pythondatabasesqlite

解决方案


我试过了。似乎不需要单引号insert。请参阅下面的修改:

import sqlite3

def create_table():
    conn = sqlite3.connect("lite.db")    
    cur = conn.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS store (item TEXT, quantity INTEGER, price FLOAT)")
    conn.commit()
    conn.close()

def insert(item, quantity, price):
    conn = sqlite3.connect("lite.db")
    cur = conn.cursor()
    cur.execute("INSERT INTO store VALUES (?,?,?)", (item, quantity, price))
    conn.commit()
    conn.close()


def view():
    conn = sqlite3.connect("lite.db")
    cur = conn.cursor()
    cur.execute("SELECT * FROM store")
    rows = cur.fetchall()
    conn.close()
    return rows
create_table()
insert("Mug", 1, 5)
print(view())

推荐阅读