node-mysql 一个查询中的多个语句

2024-02-12

我在用着nodejs 10.26 + express 3.5 + node-mysql 2.1.1 + MySQL-Server Version: 5.6.16.

我有 4 个 DELETE,只需要 1 个数据库请求,所以我用“;”连接 DELETE 命令...但它总是失败。

var sql_string = "DELETE FROM user_tables WHERE name = 'Testbase';";
sql_string += "DELETE FROM user_tables_structure WHERE parent_table_name = 'Testbase';";
sql_string += "DELETE FROM user_tables_rules WHERE parent_table_name = 'Testbase';";
sql_string += "DELETE FROM user_tables_columns WHERE parent_table_name = 'Testbase';";

connection.query(sql_string, function(err, rows, fields) {
   if (err) throw err;
   res.send('true');
});

它抛出这个错误:

Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM user_tables_structure WHERE parent_table_name = 'Testbase';DELETE FR' at line 1

但如果我将此 SQL 粘贴到 PhpMyAdmin 中,它总是成功的......

如果我将其写在单个查询中,它也会成功。

        connection.query("DELETE FROM user_tables WHERE name = 'Testbase'", function(err, rows, fields) {
        if (err) throw err;

        connection.query("DELETE FROM user_tables_structure WHERE parent_table_name = 'Testbase'", function(err, rows, fields) {
            if (err) throw err;


            connection.query("DELETE FROM user_tables_rules WHERE parent_table_name = 'Testbase'", function(err, rows, fields) {
                if (err) throw err;

                connection.query("DELETE FROM user_tables_columns WHERE parent_table_name = 'Testbase'", function(err, rows, fields) {
                    if (err) throw err;

                    res.send('true');
                });
            });
        });
    });

感谢帮助!


我猜你正在使用节点mysql https://github.com/felixge/node-mysql. (但也应该为节点-mysql2 https://github.com/sidorares/node-mysql2)

The docs https://github.com/mysqljs/mysql#multiple-statement-queries says:

出于安全原因,禁用了对多个语句的支持(它 如果值没有正确转义,则允许 SQL 注入攻击)。

多语句查询

要使用此功能,您必须为您的连接启用它:

var connection = mysql.createConnection({multipleStatements: true});

启用后,您可以通过用分号分隔每个语句来执行多个语句的查询;。结果将是每个语句的一个数组。

Example

connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) {
  if (err) throw err;

  // `results` is an array with one element for every statement in the query:
  console.log(results[0]); // [{1: 1}]
  console.log(results[1]); // [{2: 2}]
});

因此,如果您启用了multipleStatements,你的第一个代码应该可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node-mysql 一个查询中的多个语句 的相关文章

  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • 如何执行密集的 Node.js 计算

    我正在开发一个电子商务应用程序 每次产品从服务器发送到客户端时都必须重新计算产品的定价 每次发送多达数千个产品 计算部分本身相当密集 因为它需要多个数据库查询来计算 我的简单解决方案是将计算部分抽象到另一个专门用于计算的 Node js 应
  • RMySQL fetch - 找不到继承的方法

    使用 RMySQL 我想将数据从数据库加载到 R 中的数据帧中 为此 我使用以下代码 R连接数据库 con lt dbConnect MySQL user root password password dbname prediction h
  • NodeJS os 模块无法使用 userInfo()

    https nodejs org api os html os os userinfo options https nodejs org api os html os os userinfo options 节点版本 v4 2 6 NPM版
  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • Sql:计算随时间的增长

    我几周前发布了这个问题 但我认为我没有清楚地提出这个问题 因为我得到的答案不是我想要的 我认为最好重新开始 我正在尝试查询数据库以检索一段时间内唯一条目的数量 数据看起来像这样 Day UserID 1 A 1 B 2 B 3 A 4 B
  • windows下用nodejs抓包

    node js v0 8 0 XP WIN7 不是 Cygwin 谷歌并找到node pcap https github com mranney node pcap https github com mranney node pcap 但它
  • 如何修复 InterfaceError: 2003: 无法连接到“127.0.0.1:3306:3306”上的 MySQL 服务器(11001 getaddrinfo 失败)

    我的MySQL连接成功但是遇到这个界面错误 import mysql connector db mysql connector connect host 127 0 0 1 3306 user root passwd teja databa
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • 设置缩略图内容类型

    我需要设置Content Type对于缩略图 我已经尝试如下所示 但它不起作用 仍然 它存储为流 天青功能 索引 json var Jimp require jimp module exports context myBlob gt Rea
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • 数据表 - 服务器端处理 - 数据库列合并

    我目前正在使用 DataTables 1 10 5 服务器端处理功能 http www datatables net examples data sources server side html http www datatables ne
  • 无法在 AWS Lambda 自定义授权方中验证 Twilio 请求

    我使用 NodeJS 构建了一个自定义授权者 lambda 函数 并将其配置为授权 AWS 中的另一个 lambda 函数 这个其他函数是从 HTTP 端点触发的 并且具有我在 Twilio Messaging Service 中配置为 w
  • Laravel Group By 和 Order By 不起作用

    我尝试制作一个Laravel 5 8项目 项目中的数据是这样的 id purch name prcvalue 1 10234 Nabila 100 2 10234 Nadeera 450 3 10234 Nabila 540 4 10234
  • Clojure MySQL 语法错误异常(“[...] 靠近 '???????????????' [...]”)

    除了建立连接之外 我在使用 clojure contrib sql 做任何事情时都遇到困难 我有一个 mysqld 在 localhost 3306 上运行 数据库名为clj db 用户 clj user localhost 和密码 clj
  • heroku node.js bash:节点:找不到命令

    在 cedar stack 上的 heroku 上部署我的应用程序似乎存在一个奇怪的问题 我的节点进程甚至没有被调用 我的Proc文件如下 web node web js 和我的 package json 文件 name fuuzik ve
  • Eclipse 中的 node.js - 大多数人使用哪个插件?

    我最感兴趣的是服务器端 Web 开发 尽管能够在 Chrome 中重新部署一些部分会很好 我目前正在跑步Eclipse Indigo在 Ubuntu 上主要开发 Java Scala 程序并使用 git 到目前为止我遇到过http code
  • 在 AWS Lambda 中共享代码

    在 AWS Lambda 函数之间共享代码的首选方式是什么 我有这样的结构 functions a 节点模块 index js 包 json b 节点模块 index js 包 json c 节点模块 index js 包 json 这让每
  • 使用任何节点模块在内存中创建 ZIP 文件

    是否有任何节点模块可以在内存中创建 zip 我不想将 zip 文件保存在磁盘上 以便我们可以将这个创建的 zip 文件发送到其他服务器 从内存 做这个的最好方式是什么 这是我的例子 var file system require fs va
  • 通过将行旋转为动态数量的列来在 MySQL 中创建摘要视图

    我在 MySQL 中有一个表 其中包含以下字段 id company name year state 同一客户和年份有多行 以下是数据示例 id company name year state 1 companyA 2008 1 2 com

随机推荐

  • 如何将 Perl 嵌入到 C++ 应用程序中?

    我想从我的 C 程序中调用 Perl 脚本文件 我不确定我将分发给的人是否会安装 Perl 基本上 我正在寻找一个可以使用的 lib 文件 该文件具有类似 Apache 的分发许可证 您可以将 Perl 嵌入到您的应用程序中 Perl 嵌入
  • C++ 具有频繁变化概率的离散分布采样

    问题 我需要从由某些权重构成的离散分布中进行采样 例如 w1 w2 w3 因此概率分布为 p1 p2 p3 其中 pi wi w1 w2 有些wi变化非常频繁 但只占所有wi的比例非常低 但分布本身每次发生时都必须重新规范化 因此我相信 A
  • 如何像facebook的照片查看器一样修改历史记录?

    我的网站上有一个弹出模式 类似于 Facebook 的照片查看器 当模式打开时 它显示来自另一个页面的内容 我想更改地址栏值和历史记录以显示这一点 模式中有一个下拉菜单 可以将模式中的内容更改为不同页面的内容 当发生这种情况时 我再次想要更
  • MassTransit/RabbitMq 错误队列 - 如何删除消息?

    我有一个队列 QueueName 我定义了消费者和错误消息消费者如下 cfg ReceiveEndpoint queueName QueueName e gt e UseMessageRetry r gt r Immediate 2 e A
  • 如何选择 mysql 中最新的条目?

    我想从表中选择最新的条目 看看该条目是否与用户尝试输入的条目完全相同 如何执行查询 从最近的 发布 条目中选择 query Select FROM confused here SELECT FROM posting ORDER BY dat
  • 显示对话框片段时未调用 AndroiddispatchKeyEvent

    当我的对话框片段是hide dispatchKeyEvent工作得很好 Override public boolean dispatchKeyEvent KeyEvent event Toast makeText FragmentPlaye
  • 如何在reactjs中管理树组件中的状态

    我已经为此苦苦挣扎了几天 试图找出 反应 的方式来做到这一点 基本上 我有一棵树 一个可以任意嵌套的列表列表 列表 我想要一个能够显示它并启用重新排列的组件 这是我的数据 var data id 1 id 2 children id 3 c
  • WooCommerce REST API - 获取订单的自定义字段

    我正在使用 WooCommerce REST API http woocommerce github io woocommerce rest api docs introduction http woocommerce github io
  • 如何使用rvm升级ruby on Rails应用程序的ruby版本

    如何使用 rvm 安全地升级我的 ruby on Rails 应用程序以使用新的 ruby 版本 假设您的应用程序是 my app 并且您正在使用 ruby 版本 a b c 并且想要转到 ruby 版本 x y z Step 0 开始之前
  • Itunes Connect 将桌面显示为 iPad 应用程序的平台

    今天我注意到 iTunes Connect 销售和趋势部分有了新皮肤和一些新功能 但是我公司的应用程序 仅适用于 iPad iPhone 似乎可以在桌面上下载 有谁知道 桌面 对于 iOS 应用程序意味着什么 它适用于 Mac 应用商店应用
  • Android:GraphView 如何在 X 轴上实现时间?

    我发现很难弄清楚如何在 Android 中的图表的 X 轴上实现时间 这是我的代码 for int i 0 i lt listSize i String onlyReading mData get i getReading split re
  • gem 和插件有什么区别?

    我是 Rails 新手 对 gems 和插件的概念感到困惑 谁能为我解释一下吗 插件只是从特定目录加载的库 gems 通过加载Bundler http gembundler com or RubyGems http rubygems org
  • WCF - 设计参数决策

    我正在为基金管理设计一项服务 基金管理服务有一个名为 UpdateFundApprovalDate FundDTO 基金 的操作 此操作将使用fundingID 的批准日期更新资金表记录 该服务将由 FundManagementUI 客户端
  • SQL 使用 CASE 语句更新列中的行

    我有两个表 用户和 TempTable 它是用户的子集 我想更新 Users 表中的 IsActive 列 如果 TempTable 中的用户也在 Users 表中 我想设置 IsActive 1 否则设置 IsActive 0 从不在 T
  • 如何从传奇中发送重击?

    我知道我不应该尝试从 sagas 中发送 thunks 这违背了 redux saga 试图做的事情 但我正在一个相当大的应用程序中工作 大部分代码都是用 thunk 编写的 我们正在按位迁移 需要从 saga 内部调度 thunk thu
  • 使用 java 编写 .ics iCal 文件

    我正在尝试使用 java 实现我自己的 iCal 创建器 但由于某种原因我无法识别我的 ics 文件 我想知道我做错了什么 我可以获得与维基百科的示例完全相同的输出 ics 文件和我的程序生成的一次文件有什么区别 他们的例子 BEGIN V
  • 运行多个实例时无法启动logstash - path.data 设置

    你好 我是 ELK 堆栈内部的新手 在后台运行一个logstash进程 当它找到匹配的文件模式时 它如下所示 我想了解这里的重要性是什么path data选项 请帮帮我 FATAL logstash runner Logstash coul
  • swig 用变量扩展模板类

    我正在为模板类构建 Swig 接口 在我的 pyinterface i 文件中 我声明 template myclass MyClass
  • Matlab 3d 体积可视化和 3d 叠加

    问题几乎就是标题 我有一个作为原始数据加载的 3d 体积 256 256 256 size A 它仅包含零和一的值 其中 1 代表结构 0 代表 空气 我想在 MATLAB 中可视化该结构 然后对其运行算法并在其上覆盖一个覆盖层 假设颜色为
  • node-mysql 一个查询中的多个语句

    我在用着nodejs 10 26 express 3 5 node mysql 2 1 1 MySQL Server Version 5 6 16 我有 4 个 DELETE 只需要 1 个数据库请求 所以我用 连接 DELETE 命令 但