2012-12-20 26 views
0

我有以下PhoneGap的sqlite的插入語句:奇怪的DB插入問題的PhoneGap +源碼

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

兩個列是文本數據類型,但插入查詢不工作。 uniqueId是隨機的8個字符的字符串,如'e72361c6'。奇怪的是,當我直接插入「e7231c6」,它的工作原理。爲什麼它不適用於變量。還有一點需要注意的是,隨機字符串是通過解密存儲在server-db中的值生成的。我正在清理並獲取服務器上的8位隨機字符串,然後將解密後的值發送到設備,存儲在變量中並插入發生問題的db中。當我在插入前提醒字符串時,它顯示正確的8個字符的字符串。另一方面,如果我不解密並且簡單地從服務器發送8個字符的字符串,插入就會成功發生。可能與編碼/解碼字符串格式有關。任何幫助表示讚賞。

+1

sqlite是否區分單引號和雙引號? – ErikE

+0

我已經試過用單引號和雙引號 – clint

+0

嘗試刪除xtra「你有。像這樣... tx.executeSql('insert into'+ gAppConfig.configTable +'(key,value)values(」uniqueId「,'' + uniqueId +'「)',[],querySuccess,errorQuery); – Daniel

回答

0

只是NULL

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

取代 「UNIQUEID」,或者您可以使用此

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

記住,你是在處理SQLite而不是與正常的SQL服務器。

0

在SQL中,表/列名稱等標識符應使用雙引號,而字符串應使用單引號。 (其他引號支持與其他DB兼容,但可能會被誤解。)

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