sqlite3.operational错误:靠近“,”:语法

2024-05-14 23:44:18 发布

您现在位置:Python中文网/ 问答频道 /正文

更新1: 另一行行行得通(谢谢你的帮助!)。现在我尝试运行以下命令,但这也不起作用,第13行出现错误:sqlite3.OperationalError:near“,”:syntax error

代码如下:

cur.execute("CREATE TABLE Progress(Id INTEGER PRIMARY, Username STRING, Topic1 STRING, Topic2 STRING, Topic3 STRING, Topic4 STRING, 1Result STRING, 2Result STRING, 3Result STRING, 4Result STRING, TResut STRING, TCorrect INTEGER, TWrong INTEGER, TAttempted INTEGER)")
cur.exectue("INSERT INTO Progress VALUES(1, 'Admin', 'Algebra', 'Number', 'Shape, Space and Measures', 'Handling Data', '100%', '100%', '100%', '100%', '100%', '10', '0', '10')")

我已经创建了一个SQL表,如下所示,并试图将一些数据输入到表中,但是我仍然得到以下错误:sqlite3.OperationalError:near“1”:语法错误

con = lite.connect('Records.db')
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE Questions(Id INTEGER PRIMARY KEY, Question STRING, Answer STRING, Mark INTEGER, Topic STRING, Incorrect STRING, QType STRING)")
    cur.execute("INSERT INTO Questions(1, 'What is 2/3 of 6?', '4', '1', 'Fractions', 'None', 'Numerical')")

Tags: idexecutestring错误createtableintegercon
2条回答

你想做什么的语法可以在http://sqlite.org/lang_insert.html找到

在你的例子中,你可以输入

cur = con.cursor()
cur.execute("CREATE TABLE Questions(Id INTEGER, Question STRING, Answer STRING)")
cur.execute("INSERT INTO Questions VALUES(1, 'What is 2/3 of 6?', '4')")

我发现在提交到Python代码之前,使用sqlite环境进行测试是很有帮助的。

^{} statement是错误的;您需要在其中使用VALUES关键字。应该是:

cur.execute("INSERT INTO Questions VALUES (1, 'What is 2/3 of 6?', '4', '1', 'Fractions', 'None', 'Numerical')")
#                          --------^^^^^^

您将列放置在SQL期望列名称列表(可选)的位置。

相关问题 更多 >

    热门问题