0

未创建或未显示的表:

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")');
    });
}

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

4

1 回答 1

0

由于关键字 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>
于 2016-09-22T03:35:41.193 回答