我尝试在我的iPhone上使用cordova 3.1.0在SQLite中存储一个数组。我尝试存储的数组由json在我的外部服务器上的php文件中编码。当我在手机上获得编码阵列时,我会尝试将其存储在SQLite中。
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 :(得分:0)
我想你必须引用字符串:
tx.executeSql('INSERT INTO DATABASE (id, data) VALUES (1, \''+JSONstring+'\')');
提供JSONstring
本身不包含任何引号,否则您需要将它们加倍(http://www.sqlite.org/faq.html#q14)。