Un soucis avec Insertion Mysql en PDO

max-jacob -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonsoir les génies,

Je suis coincé dans mon code lors d'une insertion mysql en BD que j'aimerais faire en PDO.

L'objectif c'est de vérifier d'abord si l'email et l'identifiant de cet utilisateur n'est pas déjà utiliser, si tel n'est pas le cas, c'est ainsi que je procèderai à l'insertion en bd.

Ma BD est composé d'une table "Personne" avec comme attribut:
- id
- username
- nom,
- age
- dateEnregistrement

Mon problème se trouve d'abord au niveau de la vérification de l'existence de l'username et de l'email dans la BD et ensuite l'insertion.

Ci-dessous mon code et merci d'avance de votre aide.



<?php
//Les données sont soumis par POST a partir d'un formulaire se trouvant a la page precedent
$email=$_POST['email'];
$username=$_POST['username'];
$RecordDuplicationVerification = $pdo->prepare("SELECT * FROM Personne WHERE username =? AND email = ?");
$RecordDuplicationVerification->execute([$username]);
$EtatDuplication = $RecordDuplicationVerification->fetch();

if($EtatDuplication){
//Si le meme username et email figure deja dans la base de donnes
die( "<center><p class='NumeroIndispo'><img src='../img/Warning.png' width='150' height='150'><br>Désolé, ce nom d'utilisateur et/ou cet adresse email est déjà utilisé par un autre utilisateur</a></p></center>");
}else{
//Same username && email are not found, execute the INSERT

$Insertion = $pdo->prepare('INSERT INTO Personne VALUES
(NULL,
:username,
:nom,
:age,
:email,
CURRENT_TIMESTAMP)');

//On lie chaque marqueur a une valeur
$Insertion->bindValue(':username', $_POST['username'], PDO::PARAM_STR);
$Insertion->bindValue(':nom', $_POST['nom'], PDO::PARAM_STR);
$Insertion->bindValue(':age', $_POST['age'], PDO::PARAM_STR);
$Insertion->bindValue(':email', $_POST['email'], PDO::PARAM_STR);

//Exécution de la requête préparé
$insertIsOk = $Insertion->execute();

if($insertIsOk){
$message = "Félicitation! L'enregistrement s'est deroule avec successs";
}else{
$message = "Un probleme est survenu durant l'enregistrement";
}

?>

<html>
<head></head>
<body>
<?php echo $message; ?>
</body>
</html>

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour
    Commence par appliquer ça :

    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    Et ceci:. https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    Puis reviens nous voir avec ton code modifié si ton souci persiste.

    Nb: pense a indiquer dans les balises de code, le langage php afin d'avoir la coloration syntaxique.
    Explications à lire entièrement disponibles ici: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

    0