例如,我有一个注册表,还有一个用于提交详细信息的按钮,所以一旦我单击该按钮,我就希望它们被发送到mysql数据库。不幸的是,我只知道如何在server.js上执行数据库查询,但我如何在任何脚本上执行它?下面是不起作用的方法
$("button#submit").click(function () {
var username = $('#usr').val();
var password = $('#pwd').val();
db.query("INSERT OR REPLACE INTO user_data (username, password) VALUES (" + username + "," + password + ")");
//// something like this
})发布于 2017-03-23 16:18:07
您不能从前端对mySql数据库运行查询。这将是一个巨大的安全问题。您必须将这些值发送回您的后端,并从那里使用这些值查询数据库。
还要确保使用准备好的语句。您的查询对mysql注入是完全开放的。

您可以使用node-mysql和mysql.format()运行预准备语句
var sql = "SELECT * FROM ?? WHERE ?? = ?";
var inserts = ['users', 'id', userId];
sql = mysql.format(sql, inserts);翻译为您的查询,这将是
let query = "REPLACE INTO user_data (username, password) VALUES (?,?)";
let inserts = [username, password]; // however you obtain them in the backend
mysql.query(mysql.format(query, inserts));请注意,我将INSERT OR REPLACE更改为REPLACE,因为这是一个语法错误。
https://stackoverflow.com/questions/42970499
复制相似问题