0

我有以下 Phonegap SQLlite 插入语句:

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

这两列都是文本数据类型,但插入查询不起作用。

uniqueId 是一个随机的 8 个字符的字符串,例如“e72361c6”。奇怪的是当我直接插入“e7231c6”时,它起作用了。为什么它不适用于变量?这里要注意的另一件事是,随机字符串是通过解密存储在服务器数据库中的值生成的。我正在解密并在服务器上获取 8 位随机字符串,然后将解密的值发送到设备,存储在变量中并插入出现问题的数据库中。

当我在插入之前提醒字符串时,它显示正确的 8 个字符的字符串。另一方面,如果我不解密并简单地从服务器发送 8 个字符串,则插入成功。也许它与编码/解码字符串格式有关。

4

2 回答 2

0

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

INSERT INTO "MyTable"("col1", "col2")
VALUES ('ABC', 'xyz')
于 2012-12-22T11:58:04.677 回答
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 服务器。

于 2012-12-20T12:49:13.253 回答