2011-11-17 69 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

这让我永远不知所措。你真的应该在你的文档中添加第三个参数来选择结果

相关问题