2013-10-13 34 views
0

我嘗試在SQLite的存儲陣列,在我的iPhone科爾多瓦3.1.0。我嘗試存儲的數組由json在我的外部服務器上的php文件中編碼。當我在手機上得到編碼數組時,我嘗試將它存儲在SQLite中。科爾多瓦存儲陣列中的SQLite的JavaScript

  var JSONstring = data; 

      var db = window.openDatabase('DATABASE', "1.0", 'DATABASE', 1000000); 
      db.transaction(populateDB, errorCB, successCB); 

      function populateDB(tx) { 
       tx.executeSql('DROP TABLE IF EXISTS DATABASE'); 
       tx.executeSql('CREATE TABLE IF NOT EXISTS DATABASE (id unique, data)'); 
       tx.executeSql('INSERT INTO DATABASE (id, data) VALUES (1, '+JSONstring+')'); 
      } 

      function errorCB(tx, err) { 
       alert("Error processing SQL: "+err); 
      } 

      function successCB() { 
       alert("success!"); 
      } 

var JSONstring是我從服務器獲得的編碼數組。但由於某種原因,我的iPhone說'錯誤處理SQL:未定義'。

回答

0

我想你必須引用字符串:

tx.executeSql('INSERT INTO DATABASE (id, data) VALUES (1, \''+JSONstring+'\')'); 

提供JSONstring本身不包含任何引號,否則你需要加倍他們(http://www.sqlite.org/faq.html#q14)。

+0

JSONstring與數組變量它 – Ajeo

+0

@MeQube內:SQLite不關心它是什麼 - 它只能看到一個字符串,所有字符串必須加引號。 – georg

+0

但是如何在這種形式的代碼中使用它? tx.executeSql( 'INSERT INTO '+元素+' - ' +周+ '(ID,數據)值(1,\ '' + JSONstring + '\')'); – Ajeo