奇怪的数据库插入问题在Phonegap和SQLite

Strange database insertion issue in Phonegap and SQLite

本文关键字:Phonegap SQLite 问题 插入 数据库      更新时间:2023-09-26

我有以下Phonegap sqlite插入语句:

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

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

uniqueId是一个随机的8个字符串,如'e72361c6'。奇怪的是,当我直接插入"e7231c6",它工作。为什么它不能处理变量?这里还需要注意的一点是,随机字符串是通过解密存储在服务器-数据库中的值生成的。我正在解密并获得服务器上的8位随机字符串,然后将解密值发送到设备,存储在变量中并插入到数据库中,这就是问题发生的地方。

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

将"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服务器。

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

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