gpt4 book ai didi

javascript - HTML5 SQL 插入多行

转载 作者:行者123 更新时间:2023-11-30 19:09:45 25 4
gpt4 key购买 nike

我正在尝试将多行插入到 SQLite 数据库中。

像这样的单行插入效果很好:

tx.executeSql("INSERT or REPLACE  INTO `table` (`type` , `pid` , `title` , `body`) VALUES  (?,?,?,?) ", ['qa',v.id,v.title,v.content_html ] ,console_success, console_fail); 

如何将变量数组传递给该执行程序以同时运行所有变量?(paramiterizaion 方法似乎正确地清理了我的数据并插入。当我执行原始查询时它没有并且我的 sql 失败。我需要在数据库中插入一个完整的 html 正文)

所以我不能只做这样的查询

insert into table (a,b,c) values (a,b,c) ,(a,b,c),(a,b,c)

escape() 函数在 body 中弄乱了我的 html

附言和这个问题不一样HTML 5 SQLite: Multiple Inserts in One Transaction

最佳答案

如您所见,您应该真正坚持参数化查询并避免“原始”查询。参数化查询将自动为您转义输入,从而防止 SQL 注入(inject)。

此处的关键是构建满足您需求的参数化查询。这是一个例子。

// Guessing 2d array of raw data
var dataArr = [ ['qa','123','title1','<html></html>' ],
['bc','456','title2','<html></html>' ],
['xy','789','title3','<html></html>' ] ];

// Creating a parametrized entry for every row of dataArr
var param = "(?,?,?,?),".repeat(dataArr.length).slice(0,-1);

// The insert query
var query = "INSERT or REPLACE INTO `MyTable` (`type` , `pid` , `title` , `body`) VALUES ";

// Convert the 2d dataArr into 1d data
var data = [];
for(var i = 0; i < dataArr.length; i++)
data = data.concat(dataArr[i]);

tx.executeSql(query + param, data); // Final query is : INSERT or REPLACE INTO `MyTable` (`type` , `pid` , `title` , `body`) VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?)

关于javascript - HTML5 SQL 插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613000/

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