学习phonegap为Android编写基本应用。出于这个原因使用WebSQL,我知道它已被弃用,但它仅适用于Android手机而且没有缩放,所以此时不会为像polyfill这样的东西打扰。
在我开始使用回调处理程序之类的东西之前,试着让auto_increment工作,这是代码的基础:
var db = openDatabase('test', '1.0', 'Test', 10 * 1024 * 1024);
db.transaction(
function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS test (id INTEGER AUTOINCREMENT, value VARCHAR)');
}
);
$(function(){
$('#test').click(function(){
alert('click');
db.transaction(
function (tx) {
tx.executeSql('INSERT INTO test (value) VALUES (?)', ["testValue"]);
}
);
});
});
尝试使用默认关键字之类的东西,但似乎没有任何效果。如果我为ID列添加一个值,它可以正常工作。
编辑这是尝试它的代码,什么都不插入。
var db = openDatabase('test', '1.0', 'Test', 10 * 1024 * 1024);
db.transaction(
function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, value VARCHAR)');
}
);
$(function(){
$('#test').click(function(){
alert('click');
db.transaction(
function (tx) {
tx.executeSql('INSERT INTO test (value) VALUES (?)', ["testValue"]);
}
);
});
});
答案 0 :(得分:6)
尝试使用:
tx.executeSql('CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, value VARCHAR)');
在webSql(sqlite)中,除非传递值,否则PRIMARY KEY会自动递增。其他信息:http://sqlite.org/autoinc.html