- j'aimerai pouvoir corrigé les devoirs sur le compte de l'email en référence :
j'ai pour cela effectué une condition si l'adresse est bien enregistrée, la correction peut se faire.
dans le cas contraire, il indique que l'email n'existe pas.
seulement lorsque je veux faire l'injection dans la base et sur le compte en référence de l'email, ,j'ai une erreur MySQL :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'email = '***@***'' at line 1' in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\test.php:40 Stack trace: #0 C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\test.php(40): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\test.php on line 40
mais je pense que je m'y prends mal, étant debutant pensez-vous que mon code est correct ?
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=educfiducia', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$email = $_POST['email'];
if (!empty($email)) {
if(!empty($_POST)){
$errors = array();
if(empty($_POST['email'])){
$errors['email'] = "Vous devez rentrer l'email du candidat";
}
if (empty($_POST['note'])){
$errors['note'] = "Pas de note !";
}
if (empty($_POST['nature_devoirs'])){
$errors['nature_devoirs'] = "Vous devez spécifiez la nature du devoirs";
}
if (empty($_POST['observation'])){
$errors['observation'] = "Observation doit être complétée";
}
if (empty($errors)) {
$reqmail = $bdd->prepare("SELECT * FROM eleve WHERE email = ?");
$reqmail->execute(array($email));
$mailexist = $reqmail->rowCount();
if ($mailexist == 1) {
$req = $bdd->prepare("INSERT INTO eleve SET note = ?, observation = ?, naturedevoir = ? email = ?");
$req->execute([$_POST['note'], $_POST['observation'], $_POST['nature_devoirs'], $_POST['email']]);
die("Le devoir à bien été corrigé !");
}else{
$errors = "le mail n'existe pas dans la base.";
}
}
var_dump($errors);
}
}
?>
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli