我使用的是NodeJS 10.26
+Express 3.5
+Node-MySQL 2.1.1
+MySQL-Server Version:5.6.16
。
我得到了4个DELETE,只想要一个数据库请求,所以我用一个“;”连接了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');
});
});
});
});
多谢帮忙!
我猜您使用的是Node-MySQL。(但也适用于node-mysql2)
文件上说:
出于安全原因,禁用了对多条语句的支持(如果值未正确转义,则允许SQL注入攻击)。
要使用此功能,您必须为连接启用此功能:
var connection = mysql.createConnection({multipleStatements: true});
启用后,可以通过使用分号;
分隔每个语句来执行具有多个语句的查询。结果将是每个语句的数组。
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
,那么您的第一个代码应该可以工作。
问题内容: 我正在使用+ + + 。 我有4个DELETE,并且只需要1个数据库请求,因此我将DELETE命令与“;” …相连,但是它总是失败。 它引发此错误: 但是,如果我将此SQL粘贴到PhpMyAdmin中,它将始终成功… 如果我在单个查询中写它也是成功的。 感谢帮助! 问题答案: 我猜您正在使用node-mysql。( 但也应该适用于 node- mysql2 ) 该文件说: 出于安全原因
MySQL 查询 WHERE 是条件多一点查询快还是少一点查询快 t_table 表有多个字段 type, name... type是 tinyint 类型,name是 varchar 类型 这两个条语句哪个会更快
主要内容:单一条件的查询语句,多条件的查询语句在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 关键字来指定查询条件。 使用 WHERE 关键字的语法格式如下: WHERE 查询条件 查询条件可以是: 带比较运算符和逻辑运算符的查询条件 带 BETWEEN AND 关键字的查询条件 带 IS NULL 关键字的查询条件 带 IN 关键字的查询条件 带 LIKE 关键字的查询条件 单一条件的查询语句 单一条件指的是在
如何理解这条Mysql模糊查询语句 我不太理解这两种写法字符串的拼接结果是什么
问题内容: 我将不胜感激创建此查询的任何帮助。我尝试了好几种方法,但都没有碰到运气。由于我的问题很难表达,因此我将举一个我想做的简单例子。我的数据在结构上类似于以下内容: 如果我有两种特定颜色的ID,我想创建一个查询以返回类型。例如,我想查找所有具有蓝色和红色的ID。然后查询将返回: A和B的返回顺序并不重要。数据集很大,我希望有许多ID可以同时满足这两个条件(也许是50,000个左右)。我要指出
本文向大家介绍用一条mysql语句插入多条数据,包括了用一条mysql语句插入多条数据的使用技巧和注意事项,需要的朋友参考一下 假如有一个数据表A: id name title addtime 如果需要插入n条数据 : 之前我的想法会是,通过数据构造多条插入语句,循环调用 。如: 之后发现了sql的insert语句可以一次插入多条: