2011-11-17 71 views
2

我正在創建一個使用jquery mobile/phonegap的iphone webapp,並且我正在嘗試使用web數據庫。我有大約700條記錄要插入,並且希望用sql語句創建單獨的文件來創建表並在應用運行時插入記錄。我決定使用一個叫做html5sql的小型javascript模塊,因爲它使我在一次事務中執行多個sql語句的優勢。HTML5SQL使用SELECT語句從Web數據庫中檢索記錄

例如,我可以使用

html5sql.process(sql, function(){ //Success}, function(error, failingQuery){//Failure}); 

,而不是

transaction.executeSql('CREATE TABLE milestones (ID INT(10) NOT NULL, Title VARCHAR(50) DEFAULT NULL, mYear INT(11)  NOT NULL);', [], nullDataHandler, errorHandler); 
transaction.executeSql('INSERT INTO [milestones] ([ID], [Title], [mYear]) VALUES (2, "Cotton Mather", "1721");', [], nullDataHandler, errorHandler); 

htlm5sql的問題是,他們沒有對如何獲取任何信息執行

sql = "CREATE TABLE milestones ( 
     ID  INT(10)  NOT NULL, 
     Title VARCHAR(50) DEFAULT NULL, 
     mYear INT(11)  NOT NULL); 
     INSERT INTO `milestones` VALUES ('2', 'Cotton Mather', '1721');"; 

來自數據庫的信息使用進程函數和SELECT語句並顯示結果一個div塊。

here is the only short guide for html5sql

誰能幫助我?

回答

2

當然。與html5sql選擇數據是很簡單的,可以用簡單的東西如來完成:

html5sql.process(
    ["SELECT * FROM milestones;"], 
    function(transaction, results, rowsArray){ 
     for(var i = 0; i < rowsArray.length; i++){ 
     //each row in the rowsArray represents a row retrieved from the database 
     var id = rowsArray[i].ID; 
     var Title = rowsArray[i].Title; 
     var mYear = rowsArray[i].mYear; 
     console.log("Retrieved Milestone: "+id+" - "+Title+" "+mYear); 
     } 
    }, 
    function(error, statement){ 
     //hande error here   
    } 
); 

如果你想有一個更深入的例子中,我創建了一個jsfiddle前陣子一個具有顯示整個過程實際工作的代碼創建和填充數據庫,然後選擇和檢索數據。

作爲html5sql的作者,我對缺乏文檔表示歉意。我正在努力改進網站上的文檔,並添加更多如何做事情的實例。

+1

太好了!感謝你的偉大模塊。我希望你能在文檔上做更多的工作。祝你好運! – locorecto

+0

肯...有什麼辦法可以用你的插件做參數化查詢嗎?例如,如果我想添加一個WHERE子句,說「WHERE mYear> =?」然後有一個價值來填補這個?再次感謝。 – locorecto

+1

是的,但是您將SQL語句傳遞給使用SQL對象而不僅僅是字符串,併爲數據數組設置值。我已經改變了上面的[jsfiddle](http://jsfiddle.net/KCdx9/87/)我提到說明我的意思是你可以簽出[這裏](http://jsfiddle.net/KCdx9/87/) – KenCorbettJr

1

這讓我永遠不知所措。你真的應該在你的文檔中添加第三個參數來選擇結果

相關問題