gpt4 book ai didi

javascript - 缩短动态 SQL 查询 For 循环

转载 作者:行者123 更新时间:2023-12-02 20:30:01 25 4
gpt4 key购买 nike

我有一个函数可以构建 SQL 查询,然后将其插入客户端轻量 SQL。

我想我使用了很多 for 循环,我该如何缩短它?

function insert(dataBase,table,row){
var j = 0;

var sqlQueryArray = [];

sqlQueryArray[j++] = 'INSERT INTO ';
sqlQueryArray[j++] = table
sqlQueryArray[j++] = ' ('

for (var i = row.length - 2; i >= 0; i--){
sqlQueryArray[j++] = row[i].id + ',';
};

sqlQueryArray[j++] = row[(row.length - 1)].id + '';
sqlQueryArray[j++] = ')'
var sqlQueryString = ' VALUES ';

for (var i = row.length - 2; i >= 0; i--){
sqlQueryArray[j++] = '?, ';
};

sqlQueryArray[j++] = '?';
sqlQueryArray[j++] = ');'

for (var i = 0; i < sqlQueryArray.length; i++){
sqlQueryString += sqlQueryArray[i];
}
var rowArray = []
for (var i = row.length - 1; i >= 0; i--){
rowArray[i] = row[i].val;
};

dataBase.openDatabase.transaction(
function (transaction) {
transaction.executeSql(sqlQueryString,
rowArray,
dataBase.nullSQLHandler, dataBase.QueryError);
}
);
}

最佳答案

假设您使用的是相对较新的浏览器,您可以执行以下操作:

var insertStatement =
'INSERT INTO ' + table +
' (' + rows.map(function (row) { return row.id; }).join(', ') + ')' +
' VALUES (' + rows.map(function () { return '?'; }).join(', ') + ')';

您是否应该留给读者作为练习:)

编辑:我刚刚在另一个答案的评论中注意到您正在将其发送到服务器以执行。您绝对不应该这样做,因为用户可以轻松提交自己的 SQL 并对您的数据库造成各种破坏。您不应信任通过网络接收的任何数据。

关于javascript - 缩短动态 SQL 查询 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4310123/

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