Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查看功能以前可以正常工作,但现在不起作用_Python_Sqlite - Fatal编程技术网

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