2011-12-01 84 views
0

我試圖製作一個簡單的文字遊戲,它具有可通過網站更新的單詞數據庫(預裝或可由用戶加載)。我發現this的例子,我得到它的工作。但是,如果我有一個現有的數據庫,它不會工作。我是這種類型的編程新手,所以我現在已經做了2天的研究。在HTML5頁面中使用JavaScript連接到SQLite數據庫

var db = openDatabase('db.sqlite', '1.0', 'Test DB', 2 * 1024 * 1024); 
var msg; 
/* 
db.transaction(function (tx) { 
tx.executeSql('CREATE TABLE IF NOT EXISTS vocabList(id unique, word, definition, weekNO)'); 
msg = '<p>Log message created and row inserted.</p>'; 
document.querySelector('#status').innerHTML = msg; 
}); 
*/ 

我評論了這一點,以防止創建數據庫(我應該沒有這樣做?)

db.transaction(function(tx) { 
    tx.executeSql('SELECT * FROM vocabList WHERE weekNO = 1', [], function(tx, results) { 
     var len = results.rows.length, 
      i; 
     msg = "<p>Found rows: " + len + "</p>"; 
     document.querySelector('#status').innerHTML += msg; 
     for (i = 0; i < len; i++) { 
      msg = "<p><b>" + results.rows.item(i).word + "</b></p>"; 
      document.querySelector('#status').innerHTML += msg; 
     } 
    }, null); 
}); 

如果沒有做到這一點另一種更有效的方式,請點我在正確的方向。

回答

0

我不完全確定你有什麼問題。但是在你的代碼中,你註釋了它檢查表是否被創建的部分。從註釋掉的代碼中,也沒有插入任何行,所以它是一個空白的數據庫。

我修改您的代碼在這裏:http://jsfiddle.net/Ae8m2/

我註釋掉了你的創作部分,並增加了幾個行。

+0

嗨vigrond,感謝您的答覆,我想知道如何連接到一個已經存在的數據庫(wordlist.sqlite),而不是創建一個新的數據庫。我改變了openDatabase('db.sqlite','1.0','Test DB',2 * 1024 * 1024);到位於與index.html相同的文件夾中的現有數據庫文件,但它不會顯示任何內容:( – jester113

+4

嗨Jester。HTML5中的WebSQL的目的是處理由useragent(瀏覽器)處理的客戶端數據庫。您的SQL服務器上的數據庫將被視爲服務器端數據庫,在這種情況下,您將使用服務器端語言(如php)來操作它,而不是使用JavaScript。 – Vigrond

0

您正在創建/連接到的數據庫是客戶端數據庫。如果要連接到後端數據庫,則應使用服務器語言,如php

您可能想要使用ajax來連接到您的數據庫並執行您的請求。