在 NodeJS 的准备查询中设置多个字段

Posted

技术标签:

【中文标题】在 NodeJS 的准备查询中设置多个字段【英文标题】:Set multiple fields in prepared queries in NodeJS 【发布时间】:2016-02-15 22:34:47 【问题描述】:

我在 Node 中使用 'mysql' 库

这是我使用的而不是准备好的语句,并且工作得很好:

 connection.query("update table set col1=? where col2=1",[val1],function(err,rows)
        //connection.release();
        if(!err) 
          //further code
          
        );

但是,这不适用于 2 个未知数:

    connection.query("update table set col1=? where col2=?",[val1],[val2],function(err,rows)
        //connection.release();
        if(!err) 
          //further code
          
        );

错误消息显示“未定义不是函数”。我做错了什么?

【问题讨论】:

【参考方案1】:

您需要在单个数组中定义值,如下所示:

connection.query("update table set col1=? where col2=?",[val1,val2],function(err,rows)
    //connection.release();
    if(!err) 
      //further code
      
    );

所有必要的功能都可以在这里轻松找到:https://github.com/felixge/node-mysql/#preparing-queries

【讨论】:

题外话:你知道PostgreSQL有什么类似的完整模块吗? 别忘了标记答案。我想你可以使用this 之类的东西。 我的几个更新值中有逗号 (,),这会弄乱查询。我该怎么做才能摆脱它? 您确定您使用的是我提供的功能吗?库应将值转义为 written here。

以上是关于在 NodeJS 的准备查询中设置多个字段的主要内容,如果未能解决你的问题,请参考以下文章

根据来自另一个模型的异步查询在模型中设置虚拟字段

如何在Django Db记录中设置多个字段

在 linq 查询中设置动态排序名称字段

sql2005中设置字段属性时,如何设标识列(自增1)和必须唯一

从下拉列表中选择数据时,从 MYSQL 数据库中设置输入字段值属性

MySQL使用默认值与在查询中设置值是不是有任何性能差异?