【问题标题】:why i am getting error as ER_PARSE_ERROR: You have an error in your SQL syntax;为什么我收到错误为 ER_PARSE_ERROR:您的 SQL 语法有错误;
【发布时间】:2020-01-18 05:10:55
【问题描述】:

完全错误是

这是我的 index.js ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“sada”附近使用正确的语法

const express = require('express');
const app = express();
const path = require('path');
const bodyParser = require('body-parser');
let cryptr = require('cryptr');
cryptr = new cryptr('myTotalySecretKey');
const jwt = require('jsonwebtoken');
var dir = path.join(__dirname, 'public');
app.use(express.static(dir));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(__dirname + 'public'));
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'trello',
    password: 'trello',
    database: 'trello'
});
connection.connect(function (err) {
    if (!err) {
        console.log("Database is connected");
    } else {
        console.log("Error while connecting with database");
    }
});
module.exports = connection;
app.post('/signup', (req, res) => {
    let encryptedString = cryptr.encrypt(req.body.password);
    let sql = 'insert into users(name, email, password) values ?';
    let values = [req.body.name, req.body.email, encryptedString];
    connection.query(sql, values, function (err, result) {
        if (err) throw err;
        return res.redirect('/login.html');
    });
});
app.listen(3000);

我的html表单

<form action="/signup" method="POST">
            <div class="username">
                <input type="text" placeholder="User Name" name="name"></input>
            </div>
            <div class="username">
                <input type="email" placeholder="Email" name="email" id="email"></input>
            </div>
            <div class="username">
                <input type="password" placeholder="Password" name="password" id="password"></input>
            </div>
            <div class="button-signup-login">
                <button class="add-card-btn btn">Sign Up</button>
                <a class="signup-navigator" href="login.html">already a
                    user?</a>
            </div>

        </form>

我对 nodejs 很陌生,所以谁能告诉我为什么会出现这个错误

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    您必须为您插入的每个值添加一个占位符:

    let sql = 'insert into users(name, email, password) values (?, ?, ?)';
    let values = [req.body.name, req.body.email, encryptedString];
    

    【讨论】:

    • 如果解决了问题,请接受我的回答作为解决方案
    • 其实我试过了,但在 10 分钟之前它确实注意到允许接受答案
    猜你喜欢
    • 2019-07-24
    • 2018-08-29
    • 2019-08-29
    • 2023-04-07
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    相关资源
    最近更新 更多