好的,我有这个功能。什么它应该在sql中寻找pid,如果发现跳过该功能并继续前进,但我不认为我的if语句是否正常工作。
function getblogpost(div) {
var date = $(div).find('.time').text();
var user = $(div).find('.user').text();
var title = $(div).find('.title').text();
var textbody = $(div).find('.bodytext').text();
var postid = $(div).find('.pid').text();
var q = tx.executeSql("SELECT * FROM blogpost WHERE postid=" + postid,
[], function(transaction, result) {
var sqlpostid = result.rows.item(i)['postid'];
}, null);
if(result == NULL) {
return;
}
else {
dbsql.transaction(
function(transaction) {
transaction.executeSql(
'INSERT INTO blogpost (postid, date, user, title, textbody)
VALUES (?, ?, ?, ?, ?);',
[postid, date, user, title, textbody],
function() { },
errorHandler
);
}
);
return false;
}
}
这应该不起作用吗?
由于
编辑: 那这个呢。
function getblogpost(div) {
var postid = $(div).find('.pid').text();
var q = tx.executeSql("SELECT * FROM blogpost WHERE postid=" + postid, [], function(transaction));
if(!q) {
return false;
}
var date = $(div).find('.time').text();
var user = $(div).find('.user').text();
var title = $(div).find('.title').text();
var textbody = $(div).find('.bodytext').text();
dbsql.transaction(
function(transaction) {
transaction.executeSql(
'INSERT INTO blogpost (postid, date, user, title, textbody) VALUES (?, ?, ?, ?, ?);',
[postid, date, user, title, textbody],
function() { },
errorHandler
);
}
);
return false;
}
我在这里要做的是找出postid是否在数据库中,如果是,请跳过该函数并返回。
答案 0 :(得分:2)
你需要在
之类的地方定义NULL
var NULL = null;
如果不这样做,NULL
在ECMA- / Javascript中未定义。
无论如何,你为什么要这样做? executeSql()
需要两个Callbacks
作为参数。第二个是error case
,这可能更合适。
t.executeSql('SELECT Foobar FROM blogpost', [], function (t, r) {
// r.rows[1].Something
}, function (t, e) {
console.log(e.message);
});
例如。