@historydev
Острая аллергия на анимешников

Почему любой запрос к базе вызывает одинаковую ошибку?

Доброе утро,скажите пожалуйста,почему у меня в строке появляются эти символы: \
Я уже и replace пробовал,и splice ничего не помогает,их как бы и нет,но они есть когда ошибку выводит,я ночь убил в поисках решения.Помогите пожалуйста.

app.post('/register-step2', (req,res,next) => {
	let email = req.body.email;
	let role = req.body.role;
	let firstname = req.body.firstname;
	let password = req.body.password;

	let select = "SELECT * FROM users WHERE email = '" + email + "'";
	let insert = "INSERT INTO users (firstname,email,password,role) VALUES('" + firstname + "','" + email + "','" + hash + "','" + role + "')"

	connection.query(select, (err,res) => {

		if (res.length < 1) {

			bcrypt.genSalt(saltRounds, (err, salt) => {
    			bcrypt.hash(password, salt, (err, hash) => {

					connection.query(insert, (err,res) => {
				  	
					  	if(err) console.log(err);
					  	
					  	else {
					  		console.log(email)
					  	}

					});

				});
			});

		}

		else {

			return console.log('user registered!');

		}

	});

	return res.redirect('/step2')
});


code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage:
'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near \'\'Text)\' at line 1',
sqlState: '42000',
index: 0,
sql:
'INSERT INTO users (firstname,email,password,role) VALUES(\'History\',\'John@mail.ruasdad\',\'$2b$10$0bfFB/gNQaMIDPKc34zq.em3/DRAgrHiO5YpkizNA7gfqt1ZkQcHW\',\'Text)' }
  • Вопрос задан
  • 225 просмотров
Решения вопроса 2
joeberetta
@joeberetta
Читай: https://epdf.pub/google-for-dummies.html
let select = `SELECT * FROM users WHERE email = '${email}'`;
let insert = `INSERT INTO users (firstname, email, hash, role) VALUES('${firstname}' ,'${email}', '${password}', '${role}')`
Ответ написан
@Nc_Soft
Кто так sql запросы пишет? За это палками надо бить.
Лучше потратить ночь на изучение prepared statements, а не на написание очередной дыры для sql инъекции
connection.query('INSERT INTO users SET ?', {email: 'email@email'})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы