我一直在写一些代码,由于某种原因,它已经停止工作了。我正在将一条记录插入一张表中,它一直工作正常。我更改了一些与此部分无关的其他代码,但现在代码不再有效并且给我一个语法错误。
作为测试,我试图获取变量的值并尝试将它们插入到数据库中,但我遇到了同样的问题。这是代码。
self.__cdict.execute("INSERT INTO chunks (id, hash, corrupt) VALUES (?,?,?)", (1, "424947758cc4c256a016fa1d0c237c8303bcf77b65180ad3134ae4b997a82f9e", 0))
OperationalError: near "None": syntax error
任何想法我做错了什么?声明没有改变,并且确实有效,所以我不知所措。
更新:刚刚在sqlite编辑器中尝试了以下内容,看看它是否有效,并且根本没有问题。
INSERT INTO chunks (id, hash, corrupt) VALUES (1, "424947758cc4c256a016fa1d0c237c8303bcf77b65180ad3134ae4b997a82f9e", 0)
我正在使用Python 2.7,使用sqlite3
表格定义:
-- Describe CHUNKS
CREATE TABLE "chunks" (
"id" INTEGER NOT NULL,
"hash" BLOB NOT NULL,
"offset" INTEGER,
"tableid" INTEGER,
"enchash" TEXT,
"corrupt" INTEGER)
停止工作的代码
self.__cdict_cur.execute("INSERT INTO chunks (id, hash, corrupt) VALUES (?,?,?)", (self.__chunkID, chunkhash, 0))
测试代码我试图找出问题,这些值是我在错误发生之前打印出来的。
INSERT INTO chunks (id, hash, corrupt) VALUES (1, "424947758cc4c256a016fa1d0c237c8303bcf77b65180ad3134ae4b997a82f9e", 0)
既不起作用,也无法解决原因。
答案 0 :(得分:1)
我真的很抱歉我找到了错误的原因。当我打开数据库时,我引用了其中一个语句。
self.__cdict.isolation_level = "None"
而不是
self.__cdict.isolation_level = None
在我做出更改之前,我将模式设置为
self.__cdict.isolation_level = "Exclusive"
所以我认为我也需要围绕“无”的引号。