PHP

Erreur sql avec le fichier "inscription.php"

RĂ©solu

Bonjour a tous,


Je suis embĂȘtĂ© đŸ˜©, j'ai suivi les tuto sitedudev j'en suis Ă  la video 5.1 "rĂ©aliser un formulaire de connexion que je trouve genial :) mais je rencontre une erreur avec le fichier inscription.php (Ă  noter que je suis sous php 8.2), voici le fichier en question :


l'erreur affichée est la suivante :


Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 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 ') VALUES ('toto', 'couvratchristian@orange.fr', '$6$rounds=5000$60A:Bn;Nx-X!g...' at line 1 in C:\xampp\htdocs\chris3d\inscription.php on line 81


Je vous ai commentĂ© cette ligne sur le code ci-dessous, je n'arrive pas a trouver d'oĂč cela vient , ma BDD est correct je n'ai aucune erreur de connexion... si quelqu'un peut m'aider a ce sujet ... par avance merci.


<?php
include_once('include.php');


if (!empty($_POST)){
    extract($_POST);


    $valid = (boolean) true;


    if (isset($_POST['inscription'])) {
        $pseudo = trim($pseudo);
        $mail = trim($mail);
        $confmail = trim($confmail);
        $password = trim($password);
        $confpassword = trim($confpassword);


        if (empty($pseudo)) {
            $valid = false;
            $err_pseudo = "Ce champ ne peut pas ĂȘtre vide";


        } else {
            $req = $DB->prepare("SELECT id
               FROM utilisateur
               WHERE pseudo = ?");


            $req->execute(array($pseudo));


            $req = $req->fetch();


            if (isset($req['id'])) {
                $valid = false;
                $err_pseudo = "Ce pseudo est dĂ©jĂ  pris";
            }
        }


        if (empty($mail)) {
            $valid = false;
            $err_mail = "Ce champ ne peut pas ĂȘtre vide";
        } elseif ($mail <> $confmail) {
            $valid = false;
            $err_mail = "Ce mail est diffĂ©rent de la confirmation";
        } else {
            $req = $DB->prepare("SELECT id
               FROM utilisateur
               WHERE mail = ?");


            $req->execute(array($mail));


            $req = $req->fetch();


            if (isset($req['id'])) {
                $valid = false;
                $err_mail = "Ce mail est dĂ©jĂ  pris";
            }
        }


        if (empty($confmail)) {
            $valid = false;
            $err_confmail = "Ce champ ne peut pas ĂȘtre vide";
        }


        if (empty($password)) {
            $valid = false;
            $err_password = "Ce champ ne peut pas ĂȘtre vide";
        } elseif ($password <> $confpassword) {
            $valid = false;
            $err_password = "Ce mot de passe est diffĂ©rent de la confirmation";
        }


        if (empty($confpassword)) {
            $valid = false;
            $err_confpassword = "Ce champ ne peut pas ĂȘtre vide";
        }


        if ($valid) {



            $crypt_password = crypt($password, '$6$rounds=5000$60A:Bn;Nx-X!gTlezacONR|r6BZx$J^>f]lH@$CY+cllov.qX$jVrtZ!7$');
            $date_creation = date('Y-m-d H:i:s');


            $req = $DB->prepare("INSERT INTO utilisateur(pseudo, mail, mdp, date_creation, date_connexion,) VALUES (?, ?, ?, ?, ?)");

//la ligne si dessous est pointée en erreur lorsque je valide le formulaire//
            $req->execute(array($pseudo, $mail, $crypt_password, $date_creation, $date_creation));


            exit;
            // insertion Ă  notre bdd
        }else{
            echo 'nok';
            // rien (affichage des messages d'erreurs)
        }



    }
}ï»żï»ż
331 vues
28 février 2024 à 18:28
Cette pub permet au site de vivre ...

Hey @chris86260 !


Bienvenue sur Sitedudev :)


Ton erreur est simplement une virgule sur cette ligne :

$req = $DB->prepare("INSERT INTO utilisateur(pseudo, mail, mdp, date_creation, date_connexion,) VALUES (?, ?, ?, ?, ?)");


Plus précisément ici :

date_connexion,)


Remplacer par :

date_connexion)

__________________________________________________________________________


Comment le deviner ? En lisant l'erreur 😉

Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 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 ') VALUES ('toto', 'couvratchristian@orange.fr', '$6$rounds=5000$60A:Bn;Nx-X!g...' at line 1 in C:\xampp\htdocs\chris3d\inscription.php on line 81


Plus précisément ici :

"You have an error in your SQL syntax" && "near ')"

(erreur de syntaxe SQL et c'est prĂšs d'une parenthĂšse fermante)


VoilĂ ,


TrÚs bonne soirée à toi !

Florent 😆





Cette pub permet au site de vivre ...

3 commentaires

Re @chris86260 !


Tu verras c'est cool de galĂ©rer longtemps et d'avoir la rĂ©ponse Ă  sa question des heures ou mĂȘme des jours aprĂšs ^^


N'hésites pas en tout cas à nous poser toutes les questions que tu as.


Si tu es un adepte de Discord je t'envoie le lien d'invitation du serveur : ici


Florent.

heyy @Flomir !


Merci pour cette accueil :)


Alors lĂ  ! je suis absolment vert ! j'ai passĂ© ma soirĂ©e d'hier de 19h Ă  21h plus ce soir Ă  ma debauche... a chercher cette foutue erreur ! pfff... une virgule sĂ©rieux! 😆


Bon bah merci Ă  toi franchement !


Je vais donc pouvoir continuer les vidéos, je ne m'en lasse pas !


Mais j'aurais d'autre question (mis a part si je trouve ma réponse ;) )


Bonne soirée à toi

Hey @chris86260 !


Bienvenue sur Sitedudev :)


Ton erreur est simplement une virgule sur cette ligne :

$req = $DB->prepare("INSERT INTO utilisateur(pseudo, mail, mdp, date_creation, date_connexion,) VALUES (?, ?, ?, ?, ?)");


Plus précisément ici :

date_connexion,)


Remplacer par :

date_connexion)

__________________________________________________________________________


Comment le deviner ? En lisant l'erreur 😉

Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 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 ') VALUES ('toto', 'couvratchristian@orange.fr', '$6$rounds=5000$60A:Bn;Nx-X!g...' at line 1 in C:\xampp\htdocs\chris3d\inscription.php on line 81


Plus précisément ici :

"You have an error in your SQL syntax" && "near ')"

(erreur de syntaxe SQL et c'est prĂšs d'une parenthĂšse fermante)


VoilĂ ,


TrÚs bonne soirée à toi !

Florent 😆





Cette pub permet au site de vivre ...