2010-08-10 68 views
1

好吧,我有這個功能。它應該做什麼來尋找在SQL中的PID和如果發現跳過功能,繼續前進,但我不認爲我的話是否正確。如果聲明不起作用

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是否在數據庫中,如果是這樣,跳過該函數並返回。

+2

你用jQuery構建SQL?在執行之前,什麼樣的衛生條件會通過?或者更新本地存儲或什麼? – alex 2010-08-10 06:16:12

+0

@alex有什麼不對嗎? – Reigel 2010-08-10 06:19:18

+0

@alex:http://dev.w3.org/html5/webdatabase/ – jAndy 2010-08-10 06:21:58

回答

2

那麼你需要定義像

var NULL = null; 

不這樣做,NULL在ECMA-/ JavaScript的不確定NULL地方。

無論如何,你爲什麼要這樣做? executeSql()需要兩個Callbacks作爲參數。第二個是error case,這可能更好。

t.executeSql('SELECT Foobar FROM blogpost', [], function (t, r) { 
    // r.rows[1].Something 
}, function (t, e) { 
    console.log(e.message); 
});  

例如,

+0

謝謝,jAndy,現在我可以刪除我的答案。 +1。 – paxdiablo 2010-08-10 08:27:39