2013-11-21 34 views
0

我试图插入数据到websql中。我正在Chrome上进行测试,但无法正常工作。我得到error processing: SQL undefinedphonegap/cordova上的websql错误

下面是代码:

$(document).ready(function() { 

var db = window.openDatabase("Database", "1.0", "News", 200000); 
db.transaction(populateDB, errorCB, successCB); 

//create table and insert some record 
function populateDB(tx) 
{ 
    tx.executeSql('CREATE TABLE IF NOT EXISTS news (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description TEXT NOT NULL,link TEXT NOT NULL,category INT)'); 

    tx.executeSql('INSERT INTO news (title,descriptionlink,category) VALUES (?,?,?,?)',["test1","descrip","link2",2]); 
} 


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

// Transaction success callback 
// 
function successCB() { 
    alert("success!"); 
}}); 

回答

4

用的PhoneGap和科尔多瓦,你应该使用deviceready事件做你的东西。而不是在“文档准备好”事件。

确保在这些代码之前包含cordova.js文件。

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    var db = window.openDatabase("Database", "1.0", "News", 200000); 
    db.transaction(populateDB, errorCB, successCB); 
} 

//create table and insert some record 
function populateDB(tx) 
{ 
    tx.executeSql('CREATE TABLE IF NOT EXISTS news (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description TEXT NOT NULL,link TEXT NOT NULL,categorie INT)'); 

    tx.executeSql('INSERT INTO news (title,descriptionlink,categorie) VALUES (?,?,?,?)',["test1","descrip","link2",2]); 
} 


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

// Transaction success callback 
// 
function successCB() { 
    alert("success!"); 
}}); 

有关此事件的详细信息,请参阅http://docs.phonegap.com/en/2.9.0/cordova_events_events.md.html#deviceready

+0

感谢它的工作现在 –

+0

好知道.. PLZ标记答案接受时,其可能为你。 – Purus