在phonegap + sqlite中出现奇怪的数据库插入问题

时间:2012-12-20 10:06:35

标签: javascript sqlite cordova

我有以下phonegap sqlite插入声明:

tx.executeSql('insert into "'+gAppConfig.configTable+'" (key , value) values("uniqueId","'+uniqueId+'")' , [] , querySuccess, errorQuery); 

这两列都是文本数据类型,但插入查询不起作用。 uniqueId是一个随机的8个字符的字符串,如'e72361c6'。奇怪的是当我直接插入“e7231c6”时,它有效。为什么它不适用于变量。这里要注意的另一件事是随机字符串是通过解密存储在server-db中的值生成的。我正在解密并获取服务器上的8位随机字符串,然后将解密后的值发送到设备,存储在变量中并插入到发生问题的db中。当我在插入之前警告字符串时,它显示正确的8个字符串。另一方面,如果我不解密并简单地从服务器发送8个字符串,则插入成功。可能与编码/解码字符串格式有关。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

只需更换" uniqueId"用NULL

tx.executeSql('insert into "'+gAppConfig.configTable+'" (key , value) values(null,"'+uniqueId+'")' , [] , querySuccess, errorQuery);

或者你可以使用这个

tx.executeSql('insert into "'+gAppConfig.configTable+'" (value) values("'+uniqueId+'")' , [] , querySuccess, errorQuery);

请记住,您正在处理SQLite,而不是正常的SQL服务器。

答案 1 :(得分:0)

在SQL中,表/列名称等标识符应使用双引号,而字符串应使用单引号。 (支持其他引号以与其他DB兼容,但可能会被误解。)

INSERT INTO "MyTable"("col1", "col2")
VALUES ('ABC', 'xyz')