只希望用户能够将新类别的名称插入类别表。但是,存在语法错误。
该表具有两列:id和category_name。 id是自动递增的,我只想能够插入category_name并让ID自动生成。如果我从(category_name)
除去括号,错误消息将从near ")"
变为near "category_name"
。我只看到有人在表中只插入一个值的情况,也许在这种情况下语法是不同的。
我希望这很明显:)
import sqlite3
database = sqlite3.connect('db/quiz_database.db')
cursor = database.cursor()
category_userinput = input("please input data")
cursor.execute("INSERT INTO categories (category_name) VALUES (?,)",
(category_userinput))
database.commit()
Traceback (most recent call last):
File "H:/quiz database project(17-06)/The Quiz/testfile.py", line 7, in <module>
cursor.execute("INSERT INTO categories (category_name) VALUES (?,)", (category_userinput))
sqlite3.OperationalError: near ")": syntax error
答案 0 :(得分:1)
您的SQL中有一个逗号结尾,这是无效的SQL语法。另外,execute
的第二个参数需要是一个集合类型的对象,当前您只是传递一个字符串。只需更改:
cursor.execute("INSERT INTO categories (category_name) VALUES (?,)", (category_userinput))
收件人:
cursor.execute("INSERT INTO categories (category_name) VALUES (?)", [category_userinput])