我正在使用nodejs 10.26
+ express 3.5
+ node-mysql 2.1.1
+ MySQL-Server Version: 5.6.16
。
我得到了4个DELETE,只需要1个数据库请求,所以我用一个“;“但它总是失败。
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');
});
});
});
});
型
谢谢帮忙!
4条答案
按热度按时间mv1qrgav1#
我猜你正在使用node-mysql。(* 但也适用于node-mysql2*)
医生说:
出于安全原因,禁用了对多语句的支持(如果值未正确转义,则允许SQL注入攻击)。
多语句查询
要使用此功能,您必须为连接启用此功能:
字符串
启用后,您可以通过使用分号
;
分隔每条语句来执行多条语句的查询。结果将是每个语句的数组。示例
型
因此,如果您启用了
multipleStatements
,那么您的第一个代码应该可以工作。gkl3eglg2#
使用“multiplestatements:真正的“像下面所示的那样为我工作
字符串
wpx232ag3#
从DB(SQL)中取数据,以下函数将准确工作
router.get('/',function messageFunction(req,res){//res.send('Hi Dear Rasikh,Welcome to Test Page.')//=>单向dbConn.query('SELECT COUNT(name)as counted,name,last_name,phone,email from students',function(err,rows,fields){ // another Way if(err)throw err
字符串
}); });
sr4lhrrt4#
我在Next.js中工作了...
字符串