首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js + MySQL ->是否从server.js外部进行数据库查询?

Node.js + MySQL ->是否从server.js外部进行数据库查询?
EN

Stack Overflow用户
提问于 2017-03-23 16:15:11
回答 1查看 620关注 0票数 0

例如,我有一个注册表,还有一个用于提交详细信息的按钮,所以一旦我单击该按钮,我就希望它们被发送到mysql数据库。不幸的是,我只知道如何在server.js上执行数据库查询,但我如何在任何脚本上执行它?下面是不起作用的方法

代码语言:javascript
复制
 $("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
 })
EN

回答 1

Stack Overflow用户

发布于 2017-03-23 16:18:07

您不能从前端对mySql数据库运行查询。这将是一个巨大的安全问题。您必须将这些值发送回您的后端,并从那里使用这些值查询数据库。

还要确保使用准备好的语句。您的查询对mysql注入是完全开放的。

您可以使用node-mysql和mysql.format()运行预准备语句

代码语言:javascript
复制
var sql = "SELECT * FROM ?? WHERE ?? = ?";
var inserts = ['users', 'id', userId];
sql = mysql.format(sql, inserts);

翻译为您的查询,这将是

代码语言:javascript
复制
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,因为这是一个语法错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42970499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档