Python 查看功能以前可以正常工作,但现在不起作用
错误消息:Python 查看功能以前可以正常工作,但现在不起作用,python,sqlite,Python,Sqlite,错误消息: import sqlite3 def create_table(): connection = sqlite3.connect('lite.db') cursor = connection.cursor() cursor.execute('CREATE TABLE IF NOT EXISTS shop (item TEXT, quantity INTEGER, price REAL)') #you write the SQL code in between
import sqlite3
def create_table():
connection = sqlite3.connect('lite.db')
cursor = connection.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS shop (item TEXT, quantity INTEGER, price REAL)') #you write the SQL code in between brackets
connection.commit()
connection.close()
create_table()
def insert(item,quantity,price):
connection = sqlite3.connect('lite.db')
cursor = connection.cursor()
cursor.execute("INSERT INTO shop VALUES (?,?,?)", (item,quantity,price)) # inserting data
connection.commit()
connection.close()
insert('Wine Glass', 10, 5)
insert('Coffe Cup', 5, 2)
insert('Plate', 20, 10)
def view():
connection = sqlite3.connect('lite.db')
cursor = connection.cursor()
cursor.execute('SELECT ALL FROM shop ')
rows = cursor.fetchall()
connection.close()
return rows
def delete_item(item):
connection = sqlite3.connect('lite.db')
cursor = connection.cursor()
cursor.execute("DELETE * FROM shop WHERE item = ?", (item,)) # inserting data
connection.commit()
connection.close()
print(view())
delete_item('Wine Glass')
print(view())
它以前可以工作,然后我添加了delete函数,现在它给了我这个语法错误,我甚至没有对这个函数做任何更改。代码基于我的教程中的一个Udemy,在视频中应用了相同的更改后,我收到了这个错误消息,但是教程没有。你可以猜到,我对这些东西还很陌生,我无法破译错误信息,或者至少如果它比明显的意思更重要的话。所以是的,提前感谢全选应该是全选*或者只选择*来选择所有行中的所有列。请参阅语法
DELETE*FROM shop应为DELETE FROM shop。DELETE删除整行,它不需要列的列表。查看语法。DELETE*的语法已被破坏,因此我猜“全选”不再有效。您缺少要选择的列名列表。如果需要所有列,则语法为SELECT*。ALL不是一个列名,它与DISTINCT相反,意思是选择所有行而不删除重复项。老实说,我不确定你所说的语法错误是什么意思,我是一个合适的noob,但我猜你的意思是它已经过时或不再使用了?我将全部改为*并删除了代码“delete_item…”的最后两行,奇怪的是它确实起了作用。然而,当我把这两行带回来时,我得到了这个错误:cursor.executeElete*来自商店,其中item=?,item,插入数据sqlite3.OperationalError:near*:语法错误好的,谢谢你,我让它工作了
cursor.execute('SELECT ALL FROM shop ')
sqlite3.OperationalError: near "FROM": syntax error