我当前正在尝试创建一个函数来在数据库中注册用户,但是当它尝试执行“插入”查询时,会返回一个错误。
我每次尝试都使用不同的引号,我尝试将值放在[]内的查询之外:像Values?,[nom,prenom,...] 我在邮递员中使用post方法尝试。
if(nom && prenom && mail && password && lieu) {
var rgx=/(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/;
co.connection.query("SELECT Mail, Password FROM utilisateur WHERE Mail = ? AND Password = ?", [mail, password], function(error, rows){
if (!!error) {
console.log('Erreur dans la requête');
} else if(password.length >= 8 && rgx.test(password)) {
co.connection.query("INSERT INTO `utilisateur` (`Nom`, `Prenom`, `Mail`, `Password`, `Id_Localisation`) VALUES (`"+nom+"` , `"+prenom+"`, `"+mail+"`, `"+password+"`, `"+lieu+"`)", function(error, rows){
if (!!error) {
console.log("Erreur dans la requête d'envoi");
} else {
res.send('Compte créé avec succès !');
res.end();
}
})
} else if(password.length < 8){
res.send('Le mot de passe doit contenir au moins 8 caractères !');
res.end();
} else if(!rgx.test(password)) {
res.send('Le mot de passe doit contenir au moins une lettre minuscule, une majuscule et un chiffre!');
res.end();
} /*else if(rows[0].Mail == mail) {
res.send('Un compte avec cette adresse existe déjà !');
res.end();
}*/
})
}
else {
res.send('Veuillez remplir tout les champs !');
res.end();
}
我希望获得“ Comptecrééavecsuccès”
答案 0 :(得分:0)
请勿在{{1}}语句的values
子句中传递的文字值周围使用反引号。用单引号将起作用:反引号分隔的名称指数据库对象名称(表,列等),而单引号分隔字符串文字。
但是将用户定义的字符串注入SQL字符串是一种不好的做法,因此应像在第一个查询中一样使用参数:
insert