SQLite插入中的NS_ERROR_FAILURE

时间:2014-11-19 19:43:13

标签: sql sqlite syntax-error nserror

我刚买了一个Kobo电子阅读器,迫使我在电子阅读器功能之前在他们的网站上注册。看到我是一个非常隐私的原教旨主义者,我拒绝注册阅读几本书,所以我去寻找另一种选择。这使我进入this blogpost,建议在电子阅读器上打开SQLite数据库并手动插入具有以下插入的用户(格式化以便于阅读):

INSERT INTO user (
    UserID
    ,UserKey
    ,UserDisplayName
    ,UserEmail
    ,___DeviceID
    ,HasMadePurchase
)
VALUES (
    ‘5b8b0d65-b50f-4460-b6df-aca5e64f4882’
    ,’626d73ed-8382-4c1d-9750-cfe741c6e773’
    ,’a_name’
    ,’an_email_address’
    ,’01:23:45:67:89:ab’
    ,’TRUE’
);

所以我找到了sqlite数据库并运行了查询,但是我收到以下错误消息

SQLiteManager: Likely SQL syntax error: INSERT INTO user(UserID,UserKey,UserDisplayName,UserEmail,___DeviceID,HasMadePurchase) VALUES(‘5b8b0d65-b50f-4460-b6df-aca5e64f4882’,’626d73ed-8382-4c1d-9750-cfe741c6e773’,’a_name’,’an_email_address’,’01:23:45:67:89:ab’,’TRUE’);
[ unrecognized token: "4c1d" ]
Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]

我查看了用户表的结构,(如下所示),与查询略有不同。

CREATE TABLE user (
    UserID TEXT NOT NULL
    ,UserKey TEXT NOT NULL
    ,UserDisplayName TEXT
    ,UserEmail TEXT
    ,___DeviceID TEXT
    ,FacebookAuthToken TEXT                    <= missing from query
    ,HasMadePurchase BIT DEFAULT FALSE
    ,IsOneStoreAccount BIT DEFAULT FALSE       <= missing from query
    ,IsChildAccount BIT DEFAULT FALSE          <= missing from query
    ,PRIMARY KEY (UserID)
)

正如您所看到的,db中有三列不在查询中。我不认为这是错误的根源。

有人知道错误的含义以及如何解决错误吗?欢迎所有提示!

1 个答案:

答案 0 :(得分:4)

将VALUES部分的单引号更改为双引号 - 错误引用字符串的中间部分。 除此之外,在反引号中包围列值,然后一切正常。