最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

怎么解决? ER

IT培训 admin 6浏览 0评论

怎么解决? ER

我试图使用expressjs将表单数据插入到nodejs中的MySQL数据库中

当我在命令提示符下运行我的代码时它运行良好但是当我按下提交按钮时,我收到以下错误:

var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password:'',
  database : 'test'
});

app.get("/", function(req, res){
        res.render("home");
});

//when I press submit button it should post the request and render a page to submit route with text "data saved!!" 

app.post("/submit", function(req, res){

  var q = "Insert into test (ID, name, crash1, crash2, crash3) VALUES (null, '" + req.body.ANR + "', " + req.body.crash1 + ", " + req.body.crash2 + ", " + req.body.crash3 +")";
  connection.query(q, function(err){
      if(err) throw err
      res.render("home", {message: 'data saved!!'});
  })
});

我在MySQL命令行中创建了一个表

create table xyz(
    ID BIGINT AUTO_INCREMENT PRIMARY KEY NOT NULL, 
    name VARCHAR(100) NOT NULL, 
    crash1 BIGINT, 
    crash2 BIGINT, 
    crash3 BIGINT
);

当我手动插入它工作!

insert into xyz(ID, name, crash1, crash2, crash3) VALUES (1,'REERE', 2 ,2 ,2);

我的错误看起来像这个

回答如下:

您将在代码中插入测试表:

var q = "Insert into test (ID, name, crash1, crash2, crash3) VALUES (null, '" + req.body.ANR + "', " + req.body.crash1 + ", " + req.body.crash2 + ", " + req.body.crash3 +")";

但表名是xyz。你应该用xyz替换测试,它应该工作。

并且不要在id中传递null以及id不为null。

请将crash1,crash2,crash3转换为int值:

req.body.crash1 = parseInt(req.body.crash1);
req.body.crash2 = parseInt(req.body.crash2);
req.body.crash3 = parseInt(req.body.crash3);

应该是这样的:

var q = "Insert into xyz (name, crash1, crash2, crash3) VALUES ('" + req.body.ANR + "', " + req.body.crash1 + ", " + req.body.crash2 + ", " + req.body.crash3 +")";

怎么解决? ER

我试图使用expressjs将表单数据插入到nodejs中的MySQL数据库中

当我在命令提示符下运行我的代码时它运行良好但是当我按下提交按钮时,我收到以下错误:

var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password:'',
  database : 'test'
});

app.get("/", function(req, res){
        res.render("home");
});

//when I press submit button it should post the request and render a page to submit route with text "data saved!!" 

app.post("/submit", function(req, res){

  var q = "Insert into test (ID, name, crash1, crash2, crash3) VALUES (null, '" + req.body.ANR + "', " + req.body.crash1 + ", " + req.body.crash2 + ", " + req.body.crash3 +")";
  connection.query(q, function(err){
      if(err) throw err
      res.render("home", {message: 'data saved!!'});
  })
});

我在MySQL命令行中创建了一个表

create table xyz(
    ID BIGINT AUTO_INCREMENT PRIMARY KEY NOT NULL, 
    name VARCHAR(100) NOT NULL, 
    crash1 BIGINT, 
    crash2 BIGINT, 
    crash3 BIGINT
);

当我手动插入它工作!

insert into xyz(ID, name, crash1, crash2, crash3) VALUES (1,'REERE', 2 ,2 ,2);

我的错误看起来像这个

回答如下:

您将在代码中插入测试表:

var q = "Insert into test (ID, name, crash1, crash2, crash3) VALUES (null, '" + req.body.ANR + "', " + req.body.crash1 + ", " + req.body.crash2 + ", " + req.body.crash3 +")";

但表名是xyz。你应该用xyz替换测试,它应该工作。

并且不要在id中传递null以及id不为null。

请将crash1,crash2,crash3转换为int值:

req.body.crash1 = parseInt(req.body.crash1);
req.body.crash2 = parseInt(req.body.crash2);
req.body.crash3 = parseInt(req.body.crash3);

应该是这样的:

var q = "Insert into xyz (name, crash1, crash2, crash3) VALUES ('" + req.body.ANR + "', " + req.body.crash1 + ", " + req.body.crash2 + ", " + req.body.crash3 +")";

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论