gpt4 book ai didi

javascript - Node Webkit 和 Web SQL 插入 JSON 时出错

转载 作者:行者123 更新时间:2023-12-03 10:07:43 25 4
gpt4 key购买 nike

我刚刚开始使用 Node-Webkit(现在是 NW.js),我正在尝试使用 Web-SQL 来存储数据。

创建数据库工作正常,与示例中完全相同,并且通常插入数据工作正常,再次与示例中相同。然而,当我插入从 jsTree 创建的 JSON 对象时,我遇到了麻烦。

使用 jsTree 方法创建 JSON 对象:get_json('#', { 'flat': false })然后转换为字符串 JSON.stringify ,但是当我尝试将其插入表(该表存在并且具有正确数量的字段等)时,我遇到了错误。

目前我正在使用以下代码:

    DBase.transaction(
function(tx){
var v = $("#TheTree").jstree(true).get_json('#', { 'flat': false });
var jsv = JSON.stringify(v);
tx.executeSql(
'INSERT INTO TheTable VALUES(null, "Default", ' + jsv + ')',
[],
function(tx, data){ console.log("Success"); },
function(tx, error){ console.error("FAIL",error); }
);
};
);

JSON.stringify 返回时JSON 如下:

[{"id": "IDSTring","text": "Welcome String","icon": true,"li_attr": {"id": "tID4392"},"a_attr": {"href": "#","id": "tID4392_anchor"},"state": {"loaded": true,"opened": false,"selected": false,"disabled": false},"data": {},"children": []}]

如果我使用相同的代码以及任何其他值来代替变量 jsv ,例如任何标准字符串等,没有错误并且插入数据,但是 JSON 会导致以下错误: could not prepare statement (1 unrecognized token: "}") CODE: 5 .

JSON 在 JSON Lint 上进行验证,并且可以毫无问题地加载(解析)回 jsTree,因此我认为这只能是 INSERT 导致问题。

经过一番搜索,我尝试将代码更改为:

'INSERT INTO TheTable VALUES(null, "Default", "' + jsv + '")'

'INSERT INTO TheTable VALUES(null, "Default", [' + jsv + '])'

具有非常相似的错误,通常是语法错误或“]”作为无法识别的标记,但始终是“代码:5”。

如有任何帮助,我们将不胜感激。

问候

最大

最佳答案

您需要转义参数或使用准备好的语句。试试这个:

tx.executeSql('INSERT INTO TheTable VALUES(null, "Default", ?)', [jsv], ...

executeSql 的第二个参数是一个数组,其中包含将用于代替查询中问号的所有值。以下是更多示例:http://html5doctor.com/introducing-web-sql-databases/

关于javascript - Node Webkit 和 Web SQL 插入 JSON 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com