ER_PARSE_ERROR при вставке строки в базу данных MySQL с использованием node.js - PullRequest
0 голосов
/ 31 марта 2020

Попытка добавить строку в таблицу mysql с помощью node.js, но продолжает получать синтаксическую ошибку. Новое в обоих узлах / express и MySQL (загружены последние версии обоих за несколько дней go). Я сравнил мой код с другими примерами и не могу понять, что является причиной ошибки для меня. Код и вывод на консоль ниже.

const express = require('express');
const router = express.Router();
const bcrypt = require('bcryptjs');
const passport = require('passport');
const mysql = require('mysql');

const con = mysql.createConnection({
    host: 'localhost',
    user: 'theuser',
    password: 'thepassword',
    database: 'thedatabase'
});

con.connect(function(err) {
    if (err) throw err;
    console.log('User Connected!');
});

const date1 = new Date();

const newUser = {
    first_name: first_name1, 
    last_name: last_name1, 
    email: email1, 
    password: password1,
    date: date1
};

const newUser_val = Object.values(newUser)
console.log(newUser_val)
const sql = "INSERT INTO webusers (first_name, last_name, email, password, register_date) VALUES ?";
con.query(sql, [newUser_val], function (err, result, fields) {
    if(result) {
        req.flash('success_msg', 'You are now registered');
        res.redirect('../')
    } else {
        console.log(err);
    };
});

А вот соответствующий вывод консоли

User Connected!

[
  'Pete',
  'Sample',
  'pete@gmail.com',
  '$2a$10$6ufJWiCaubg8WjE.0AHqrOFi0z3W97mSN48v.vdO7pcl20ZPRBhXW',
  2020-03-31T18:54:16.474Z
]

code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Pete', 'Sample', 'pete@gmail.com', '$2a$10$6ufJWiCaubg8WjE.0AHqrOFi0z3W97mSN48v' at line 1",  sqlState: '42000',
  index: 0,
  sql: "INSERT INTO webusers (first_name, last_name, email, password, register_date) VALUES 'Pete', 'Sample', 'pete@gmail.com', '$2a$10$6ufJWiCaubg8WjE.0AHqrOFi0z3W97mSN48v.vdO7pcl20ZPRBhXW', '2020-03-31 14:54:16.474'"
}

1 Ответ

0 голосов
/ 31 марта 2020

Не уверен, почему мой вопрос был отклонен без каких-либо комментариев, но, увы, я понял это. "?" нужны скобки, как исправлено в приведенном ниже коде:

var sql = "INSERT INTO webusers (first_name, last_name, email, password, register_date) VALUES ( ? );";

Эти скобки отсутствуют во многих примерах, и они были необходимы, чтобы мой код работал ... надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...