【问题标题】:"Can't insert values into my databse's table from UI"“无法从 UI 向我的数据库表中插入值”
【发布时间】:2019-07-07 11:24:12
【问题描述】:

即使查询的响应显示“已插入”但表未使用新行更新,值也不会插入到表登录中。

var mysql = require('mysql')

router.get('/save',function(req,res){
  var uname = req.query.username;
  var em = req.query.email;
  var pass = req.query.pass;
  var gender = req.query.gender;
  var dob = req.query.date;

  var con = mysql.createConnection({
    host:"localhost",
    user:"root",
    password:"abcd1234",
    database:"nodedb"
  });
  con.query('insert into login(username, email, password, gender, DOB) 
 VALUES("' + uname + '","' + em + '","' + pass + '","' + gender + '","' + dob + '")',function(err,rows,fields){
    console.log(rows);
    res.send("inserted");
  });
  con.end();
});

module.exports = router;

结果显示 “插入” 尽管这些值没有插入到我的表中。

【问题讨论】:

  • 你没有检查err参数看是否有错误。
  • 您应该使用参数化查询,而不是将变量连接到查询中。
  • console.log(rows) 显示什么?
  • 显示未定义
  • 那么您一定遇到了错误。你应该有if (err) throw err;

标签: mysql node.js express


【解决方案1】:
var mysql = require('mysql')

router.get('/save',function(req,res){
  var uname = req.query.username;
  var em = req.query.email;
  var pass = req.query.pass;
  var gender = req.query.gender;
  var dob = req.query.date;

  var con = mysql.createConnection({
    host:"localhost",
    user:"root",
    password:"abcd1234",
    database:"nodedb"
  });

var sql = "INSERT INTO login (username, email, password, gender, DOB) VALUES ('" + uname + "'" + ',' + "'" +  em + "'" + ',' + "'" +  pass + "'" + ',' + "'" +  gender + "'" + ',' + "'" + dob + "')";
    con.query(sql, function (err, result) {
        if (err) throw err;
        console.log("1 record inserted");
        console.log(result);
    });
});

module.exports = router;

试试上面的代码.... 注意 sql 关键字用大写字母书写。 顺便说一句,在 nodejs 中使用原始 sql 很烦人,所以你最好尝试使用 ORM 一段时间

【讨论】:

  • SQL 不区分大小写,不必大写。这只是一种流行的风格。
  • 他收到“拒绝访问”错误。你的回答如何解决这个问题?
  • 检查我的代码中的var sql。当您在 nodejs 中不使用 ORM 时,这就是您在表中插入数据的方式。她犯了一个错误,没有正确插入""'来分隔sql中的值。
  • 正确的做法是使用占位符,将变量放在单独的数组参数中。
  • 你应该在答案中解释引用问题。
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 2017-04-03
  • 2016-05-08
  • 2016-07-06
  • 2019-01-21
相关资源
最近更新 更多