无法从python中将记录插入Sqlite,语法错误

时间:2013-11-24 07:52:59

标签: python sqlite

我一直在写一些代码,由于某种原因,它已经停止工作了。我正在将一条记录插入一张表中,它一直工作正常。我更改了一些与此部分无关的其他代码,但现在代码不再有效并且给我一个语法错误。

作为测试,我试图获取变量的值并尝试将它们插入到数据库中,但我遇到了同样的问题。这是代码。

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)

既不起作用,也无法解决原因。

1 个答案:

答案 0 :(得分:1)

我真的很抱歉我找到了错误的原因。当我打开数据库时,我引用了其中一个语句。

self.__cdict.isolation_level = "None"

而不是

self.__cdict.isolation_level = None

在我做出更改之前,我将模式设置为

self.__cdict.isolation_level = "Exclusive"

所以我认为我也需要围绕“无”的引号。