在WebSQL中更新一行数据

时间:2014-09-07 13:00:33

标签: javascript html database knockout.js web-sql

WebSQL已被弃用,但目前对某些应用程序仍然有用。

这是我的表,我正在使用KnockoutJS:

<table class='producttable'>
<tr>
    <th>Name</th>
    <th>Description</th>
    <th>Price</th>
</tr>
<tbody data-bind="foreach: products">
<tr>
    <td><input data-bind='value: name' /></td>
    <td><input data-bind='value: description' /></td>
    <td><input data-bind='value: price' /> </td>
</tr>
</tbody>
</table>

我能够像这样将数据保存/插入到WebSQL中:

function saveproduct(product) {
    db.transaction(function (tx) {
        tx.executeSql('INSERT INTO products (name, description, price) VALUES (?, ?, ?)',
        [product.name, product.description, product.price]);
    });
}

我不确定如何在WebSQL中更新一行数据。

我在下面尝试了这个,但它不起作用。我正朝着正确的方向前进吗?

function updateproduct(product) {
    db.transaction(function (tx) {
        tx.executeSql('UPDATE products SET name=? WHERE id=?', [product.title]);
    });
}

2 个答案:

答案 0 :(得分:1)

谢谢,当&quot;更新产品SET description =?,price =?名称=?&#39;,[product.description,product.price,product.name]);实施。我需要调整它,所以名称是id。

答案 1 :(得分:0)

实际上,您的代码需要将2个变量映射到查询中,但是我将建议另一种方法,这对我有很大帮助。

在将其放入请求之前,您必须创建一个查询字符串:

function updateproduct(product) {

let update_query = "UPDATE products SET name=" + product.title +  "WHERE id=" + product.title


    db.transaction(function (tx) {
        tx.executeSql(update_query);
    });
}

希望有帮助!