不能从SQLITE数据库中删除一行
Can't delete a row from SQLITE database
我的sqlite数据库有一个奇怪的问题。我可以插入和显示我的数据,但我不能删除它们(特别是当我做一个"等于"查询)。
下面是我的代码:
<body>
<div id="results">
Results:
</div>
<button onclick="insert_id(); return false;">Insert</button>
<button onclick="show_id(); return false;">Show</button>
<button onclick="delete_id(); return false;">Delete</button>
<script>
var db = openDatabase("testdb", "1.0", "testdb favourites", 2*1024*1024);
function insert_id(){
db.transaction(
function(t){ // This is the callback with "t" as the transaction object
t.executeSql("CREATE TABLE IF NOT EXISTS favourites (id TEXT PRIMARY KEY)");
}
);
var rec_id = "40";
db.transaction(
function(t){
t.executeSql("INSERT INTO favourites VALUES (?)", [rec_id]);
}
);
}
function show_id(){
var list = document.getElementById("results");
var rec_id = 0;
db.transaction(
function(t){
t.executeSql("SELECT id AS rec_id FROM favourites WHERE id > ?" ,[rec_id], function(t,r){
for (var i=0; i < r.rows.length; i++){
rec_id = r.rows.item(i).rec_id;
list.innerHTML +="<li>"+rec_id+"</li>";
}
},
function(t,e){alert("Fehler: " + e.message + "'n'nBitte melde dich bei bauchalarm@outlook.com wenn der Fehler öfters auftritt!");})
}
);
}
function delete_id(){
var rec_id = 40;
db.transaction(
function(t){
t.executeSql("DELETE FROM favourites WHERE id = ?", [rec_id]);
}
);
}
</script>
</body>
如果我查询WHERE id < 40
,所有低于40的数据(以及id为40)将被删除…但是当我查询WHERE id = 40
时,什么也没有发生…
我认为问题是你的ID是TEXT而不是INT。
尝试将create表更改为
CREATE TABLE IF NOT EXISTS favourites (id INT PRIMARY KEY);
相关文章:
- 如何在使用Javascript删除某一行时更新表
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 删除数据库(JSP)上的一行
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- infrastics igGrid:如何使用javascript删除一行
- 使用jQuery删除表行,但禁止删除第一行
- Html-从数据库中删除一行
- 关于FF的IMACROS.JS-如何删除宏末尾源csv文件的第一行
- 删除表中的最后一行时显示警报窗口
- 如何编辑和删除jQuery数据表的每一行
- 删除表的最后一行,除非它是使用 jquery 的唯一行
- 单击按钮时删除一行
- 如何防止谷歌闭包编译器删除一行
- 表 PHP 中每一行的删除按钮
- 通过单击删除同一行中存在的链接来删除特定行
- 删除表中的最后一行
- 前端 MySQL,删除一行
- 如何在 jQuery/javaScript 中从 txt 文件中删除一行
- 使用表单中的PHP按钮根据变量ID从MYSQL数据库表中删除一行
- 如何从javascript的最后一行删除某些字符串