【发布时间】:2017-07-26 03:53:36
【问题描述】:
我尝试更改 ID 为:273 的用户的密码,但我尝试了所有方法,但没有成功。我打算用它来通过 node.js 管理我的数据库
这是我的代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: 'root',
database: 'kitsune',
//connectionLimit: 50,
port: 3306 });
connection.connect(function(err) {
if (err) throw err;
});
const iduser = 273; // ID
const newPassword = "dfgfgSD22";
// Change password to uppercased md5
var insertQuery = "UPDATE `penguins` SET `Password` = UPPER(MD5('" + newPassword + "') WHERE ID = " + iduser + ";"
connection.query(insertQuery, function(error, results, fields) {;
console.log(insertQuery);
console.log(JSON.stringify(results));
if (error) throw error;
});
module.exports = connection;
connection.end(); // End connection
它应该更新ID为273的用户的密码,md5大写,但我不断收到以下错误:
错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查 与您的 MariaDB 服务器版本相对应的手册 在第 1 行的“WHERE
ID= 273”附近使用的语法
打印出来的查询:
更新
penguinsSETPassword= UPPER(MD5('dfgfgSD22') 其中 ID = 273;
【问题讨论】:
-
您缺少括号
"') ) WHERE -
不要使用 MD5 作为密码。 绝对至少使用 Bcrypt 或 Scrypt 之类的东西。
-
警告:您还紧急需要在创建serious SQL injection hole 之前阅读escaping query values。很抱歉这里的所有恐慌,但如果您不小心,您将创建一个黑客访问门户而不是用户访问系统。
-
@Hackerman +1 工作正常。谢谢你和其他人的帮助。我还会检查您提供给 lleon 的链接以防止出现问题。
-
@tadman 是正确的,但这是一个 .js 文件,即
server-sided,用户永远不会接触到它。
标签: javascript mysql sql node.js passport.js