【问题标题】:Node Js mySQL updating multiple rows with array of arraysNode Js mySQL用数组数组更新多行
【发布时间】:2017-09-04 08:08:54
【问题描述】:

我有一个需要更新的动态分配的行数。我创建了一组数组来保留所有这些值并将它们发送到一个查询中。每个数组包含三个值 A - 我要更新的值和 B、C - 识别需要更新哪一行所需的键。

var arrData = [];
arrData[0] = [43,54,67];
arrData[1] = [56,68,75];
arrData[2] = [43,67,75];
...
var query = "UPDATE my_table SET A_row = ? WHERE B_row = ? AND C_row = ?";

connection.query(query,[arrData], function(err,response){

if(err)
{
     console.log(err)
}    
else{ ... });

然后我得到这个错误:

错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 '? 附近使用的正确语法。 AND C_row = ?'在第 1 行

我在这里做错了什么?

【问题讨论】:

    标签: mysql node.js


    【解决方案1】:

    每个 ?需要解析为实际值。所以你需要一个带有计数器的循环来设置数组的索引并调用查询......就像, ...

    for(cnt=0;cnt< length;cnt++) {
    
       connection.query(query,arrData[cnt], function(err,response){
       if(err){console.log(err)
       else{ ... });
    

    【讨论】:

    • 好的,谢谢。但是如果我只需要在每个查询都成功时才继续我的代码怎么办?在这种情况下:向用户发送 200 响应代码。我应该应用承诺或类似的东西吗?
    • 您需要将整个 for() 循环包装在一个 Promise 中。错误时打破 for() 循环。
    猜你喜欢
    • 2017-11-20
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多