例如,我有一个注册表单,还有一个用于提交详细信息的按钮,所以一旦我单击该按钮,我希望它们被发送到 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
})
最佳答案
您无法从前端对 mySql 数据库运行查询。这将是一个巨大的安全问题。您必须将这些值发送回后端,并使用这些值从那里查询数据库。
还要确保使用准备好的语句。您的查询对 mysql 注入(inject)是开放的。
您可以使用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
,因为这是一个语法错误。
关于javascript - Node.js + MySQL -> 从外部 server.js 进行数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42970499/