如果声明不起作用

时间:2010-08-10 06:13:28

标签: jquery sql

好的,我有这个功能。什么它应该在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是否在数据库中,如果是,请跳过该函数并返回。

1 个答案:

答案 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);
});     

例如。