Я создал форму, где пользователь может ввести свою информацию. Я использую Joi для проверки содержимого формы и MySQL для связи с моей БД.
К сожалению, если мой пользователь вводит "" "во входных данных, у меня есть синтаксис ERROR из MYSQL. Как я могу изменить это автоматически? Я пытался заменить 'на \', но я не знаю, насколько это хорошо ... Я чувствую, что это не так.
Моя модель проверки не проверяет опасный символ, такой как "или \ или"Я хотел бы сохранить их в своей БД, но безопасно. Я хотел бы, чтобы мой пользователь мог ввести «Это ...», если он хочет.
Это моя модель проверки:
function validateUser(user){
const schema = {
firstname: Joi.string().required(),
lastname: Joi.string().required(),
phone: Joi.string().required(),
bestcontact: Joi.string().min(5).max(5).required(),
mail: Joi.string().optional().allow(null).allow(""),
address: Joi.string().allow(null).optional().allow(""),
suburb: Joi.string().allow(null).optional().allow(""),
state: Joi.string().allow(null).optional().allow(""),
postalcode: Joi.string().allow(null).optional().allow(""),
birthday: Joi.date().allow("").allow(null),
iduser: Joi.number().optional()
};
return Joi.validate(user, schema);
}
Это мой запрос SQL:
const queryString = `INSERT INTO user (\`iduser\`,\`firstname\`, \`lastname\`, \`phone\`, \`mail\`, \`address\`, \`suburb\`, \`state\`, \`postalcode\`, \`birthday\`, \`bestcontact\`) VALUES ('${user.iduser}','${user.firstname}', '${user.lastname}', '${user.phone}', '${user.mail}', '${user.address}', '${user.suburb}', '${user.state}', '${user.postalcode}', '${user.birthday}', '${user.bestcontact}');`
Заранее спасибо