2011-12-01 165 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来连接到您的数据库并执行您的请求。