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 に答える