【问题标题】:Browser or code wrong? Web Sql doesnt create table浏览器或代码错误? Web Sql 不创建表
【发布时间】:2016-09-22 11:35:41
【问题描述】:

未创建或未显示的表:

function createTbl(){
    db.transaction(function(transaction){
        transaction.executeSql('CREATE TABLE IF NOT EXISTS data(id INTERGER PRIMARY KEY AUTOINCREMENT, name TEXT)');
        transaction.executeSql('INSERT INTO data(name) VALUES("Someone")');
    });
}

数据库在那里,但在 Tables 上它是空的。 我相信我的代码没有错……是浏览器的问题吗?

【问题讨论】:

  • 您应该将您正在使用的浏览器添加到您的问题中。
  • 对不起!谷歌浏览器/Safari 是最新的。
  • 这就是错误处理很重要的原因。

标签: javascript web-sql


【解决方案1】:

由于关键字 PRIMARY KEY 和 AUTO_INCREMENT,代码无法正常工作,而是使用关键字 UNIQUE。也不要俱乐部 Unique 和 AUTO_INCREMENT。 这是一个工作示例。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script>

    function runExample(){
      webSql(processResultSet);
    }

    function webSql(callback) {
      var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);

      db.transaction(function(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS data (id INTERGER AUTO_INCREMENT, name TEXT)');
        tx.executeSql('INSERT INTO data (name) VALUES ("someone")');
      });

      db.transaction(function(tx) {
        tx.executeSql('SELECT * FROM data', [], function(tx, results) {
          callback(results);
        });
      });
    }

    function processResultSet(results) {
      console.dir(results);
      var len = results.rows.length;
      for (var i = 0; i < len; i++) {
        console.dir(results.rows.item(i));
      }
    }
  </script>
</head>
<body onload="runExample()">
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多