【问题标题】:How to get data from form and add inputs to Mysql table.Using JQuery如何从表单中获取数据并将输入添加到 Mysql 表中。使用 JQuery
【发布时间】:2019-11-24 00:11:42
【问题描述】:

我正在尝试将来自 HTML 页面的输入添加到 Mysql,我不知道我的代码有什么问题。为什么我的表单输入数据没有添加到 MySQL 数据库表中?我已经在 Mysql 中创建了一个表,但无法插入值。

<form action="/data" method="post">
    <div class="form-group">
        <label for="exampleInputName">???? Name</label>
        <input type="text" class="form-control" id="exampleInputName" placeholder="Enter Name">
    </div>
    <div class="form-group">
        <label for="exampleInputEmail"> ???? Email Address</label>
        <input type="email" class="form-control" id="exampleInputEmail" placeholder="Enter Email">
    </div>
    <div class="form-group">
        <label for="exampleInputcontactnumber"> ???? Contact number</label>
        <input type="number" class="form-control" id="exampleInputcontactnumber" placeholder="Enter Contact number">
    </div>
    <div class="form-group">
        <label for="exampleInputRestaurantName">???? Restaurant Name</label>
        <input type="text" class="form-control" id="exampleInputRestaurantName" placeholder="Enter RestaurantName">
    </div>
    <div class="res mt-5 mb-5 text-center" >
        <input type="submit" value="Submit" id="startapp" class="btn btn-primary" ></a>
    </div>   
</form>

var express    = require('express');
var app        = express();
var bodyParser = require('body-parser');
var mysql = require('mysql');
var con = mysql.createConnection({
    host     : '127.0.0.1',
    user     : 'root',
    password : 'password',
    database :'mydb'

});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static('public'));
app.set('view engine', 'ejs')

app.get('/', function (req, res) {

    res.sendFile(__dirname + '/Register.html');

});

app.post('/data', function(req, res){

    connection.query(sql , function(err, result){
    var sql = "INSERT INTO customers (Name,Email,ContactNumber,RestaurantName) VALUES (" + req.body.exampleInputName + "', '"+req.body.exampleInputEmail +"','"+ req.body.exampleInputcontactnumber +"','"+ req.body.exampleInputRestaurantName +"')";
        if(err) throw err;
        console.log("Data added");
    });

    res.send(data);

});

con.end();

app.listen(3000, function () {
console.log('App is running on port');
});

【问题讨论】:

  • 你有一个单列的 INTO 但你有 4 的值 .. 所以你只想插入一列或 4 列???
  • 4 列,我在表格中添加了 4 列

标签: javascript mysql node.js database


【解决方案1】:

在你的查询中,你有一个单列的插入,但你有 4 的值

你也错过了值开头的单引号,所以如果你想插入一个单列,你应该使用

var sql = "INSERT INTO customers (Item)
 VALUES ('" + req.body.exampleInputName  +"')";
        if(err) throw err;
        console.log("Data added");
    });

如果你想为 4 列插入值,你应该

  var sql = "INSERT INTO customers (your_col_name, your_col_email, your_col_contact, your_col_resturant)
   VALUES ('" + req.body.exampleInputName + "', '"+req.body.exampleInputEmail +"','"+ req.body.exampleInputcontactnumber +"','"+ req.body.exampleInputRestaurantName +"')";
          if(err) throw err;
          console.log("Data added");
      });

【讨论】:

  • 谢谢,但它不起作用,它说 /data was not found or deleted 。
  • 你确定 .. 你是怎么得到这个带有插入语句的消息的 .. ???您在哪两个查询中收到此消息.. ??? .以及在哪里执行插入查询??在您的代码中,您只需分配 sql 代码 .. 但不执行 .. 可能您在代码的其他部分有其他错误
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多