PhoneGap中文网

 找回密码
 立即注册
查看: 14099|回复: 2
打印 上一主题 下一主题

phonegap循环调用insert语句,只有最后一次的数据入库了,费解

[复制链接]

1

主题

16

帖子

54

积分

注册会员

Rank: 2

积分
54
跳转到指定楼层
楼主
发表于 2013-11-4 22:01:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. var category_id;
  2. var parent_category_id;
  3. var category_name;
  4. function insertCategory(id,parent_id,name){
  5.         category_id = id;
  6.         parent_category_id = parent_id;
  7.         category_name = name;
  8.         egory_id+"\n"+category_name);
  9.         var db = window.openDatabase("Database", "1.0", "cordova Demo", 200000);
  10.         db.transaction(insertCategory_, errorCB);
  11. }
  12. function insertCategory_(tx){
  13.         var insertSQL = "INSERT INTO PRODUCT_CATEGORY "
  14.                                   + "(PRODUCT_CATEGORY_ID, "
  15.                                   + "PRIMARY_PARENT_CATEGORY_ID, "
  16.                                   + "CATEGORY_NAME) "
  17.                                   
  18.                                   + "VALUES ('" + category_id + "',"
  19.                                   + "'" + parent_category_id + "',"
  20.                                   + "'" + category_name + "')";
  21.                                   
  22.         console.log(insertSQL);       
  23.         tx.executeSql(insertSQL);
  24. }
  25. function test() {
  26.     for(var i=0;i<3;i++){
  27.         insertCategory(i,"parentID_"+i,"categoryName_"+i);
  28.     }
  29. }
复制代码
循环结束后,只有最后一次循环的数据入库了,这是怎么回事呢?求指点!!感激不尽
回复

使用道具 举报

1

主题

16

帖子

54

积分

注册会员

Rank: 2

积分
54
沙发
 楼主| 发表于 2013-11-4 22:06:15 | 只看该作者
第8行代码是无用代码,可忽略不计
回复 支持 反对

使用道具 举报

493

主题

2035

帖子

6894

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6894
板凳
发表于 2013-11-4 22:09:26 | 只看该作者
看看如下代码,再就是研究一下官方  html5 Web SQL 看看有些东西到底是这么用的  谢谢你对我们的支持
  1. <html>
  2.     <head>
  3.         <title>Web SQL Demo</title>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5.         <meta name="viewport" content="width=device-width,initial-scale=1.0" />
  6.         <script src="jquery.js"></script>
  7.         <script src="phonegap.js"></script>
  8.         <script>
  9.         function openDB() {
  10.             var db = openDatabase(
  11.                     "body_building_db",             // 数据库的短名字
  12.                     "1.0",                          // 数据库的版本
  13.                     "Database for body building",   // 数据库的长名字
  14.                     1024*1024                       // 允许的最大尺寸(字节为单位)
  15.                 );
  16.             return db;
  17.         }

  18.         function createBodyBuildingTable(db) {
  19.             var sql = "CREATE TABLE IF NOT EXISTS body_building (id INTEGER PRIMARY KEY AUTOINCREMENT, note TEXT, date DATE);";
  20.             db.transaction(function (tx) {
  21.                 tx.executeSql(
  22.                     sql,  // 要执行的SQL语句
  23.                     [],   // SQL语句的参数列表
  24.                     function () { // 成功的回调函数
  25.                         // 插入样本数据
  26.                         record = {note: "今天练了两个小时", date: new Date(2012, 2, 1)};
  27.                         insertRecord(db, record);
  28.                         record = {note: "今天重点练习了腰部", date: new Date(2012, 2, 4)};
  29.                         insertRecord(db, record);
  30.                         record = {note: "手臂练得好疼", date: new Date(2012, 2, 7)};
  31.                         insertRecord(db, record);
  32.                         record = {note: "洗完澡,称了一下,增重了,呵呵", date: new Date(2012, 2, 11)};
  33.                         insertRecord(db, record);
  34.                     },
  35.                     statementErrorCallback // 语句执行失败的回调函数
  36.                 );
  37.                 console.log("Execute sql...");
  38.               }, transactionErrorCallback  // 事务创建失败的回调函数
  39.             );
  40.             console.log("create table...");
  41.         }

  42.         function transactionErrorCallback(error) {
  43.             alert("Error: " + error.message);
  44.         }

  45.         function statementErrorCallback(transaction, error) {
  46.             alert("Error: " + error.message);
  47.         }

  48.         function insertRecord(db, bodyBuildingRecord) {
  49.             var sql = "INSERT INTO body_building (note, date) VALUES (?,?);"
  50.             db.transaction(function (tx) {
  51.                 tx.executeSql(
  52.                     sql,
  53.                     [bodyBuildingRecord.note, bodyBuildingRecord.date], // SQL语句的参数列表
  54.                     function() {
  55.                         console.log('success');
  56.                     },
  57.                     statementErrorCallback
  58.                 );
  59.             });
  60.         }

  61.         function getRecords(db) {
  62.             var sql = "SELECT * FROM body_building;";
  63.             db.transaction(function (tx) {
  64.                 tx.executeSql(
  65.                     sql,
  66.                     [], // SQL语句的参数列表
  67.                     function(transaction, resultSet) {
  68.                         var rows = resultSet.rows;
  69.                         for (var i = 0; i < rows.length; i++) {
  70.                             // 每条记录显示为一个列表项
  71.                             $("#body_building").append('<li>'+ rows.item(i).note + ' ' + '</li>');
  72.                         }
  73.                     },
  74.                     statementErrorCallback
  75.                 );
  76.             });
  77.         }
  78.         
  79.         // 应用入口点
  80.         document.addEventListener("deviceready", function() {
  81.             var db = openDB();
  82.             createBodyBuildingTable(db);
  83.             $("#load_button").click(function() {
  84.                 // 获取数据并更新页面
  85.                 getRecords(db);
  86.             });
  87.         });
  88.         </script>
  89.     </head>
  90.     <body>
  91.         <h1>Web SQL演示</h1>
  92.         <input type="button" id="load_button" value="加载" />
  93.         <ul id="body_building"></ul>
  94.     </body>
  95. </html>
复制代码



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-11-24 06:51 , Processed in 0.077949 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表