Je ne trouve pas mon erreur

Résolu/Fermé
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 - 9 oct. 2018 à 17:20
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 - 9 oct. 2018 à 18:46
Bonjour,

j'essaie de supprimer un champs de ma bdd avec php mon code est incorrecte et je ne comprends pas pourquoi..




IF(isset($_SESSION) AND !empty($_SESSION)){

        IF(isset($_GET['IdComment']) AND !empty($_GET['IdComment'])){

                          echo "session et id existant";
            $delete = $database->prepare("DELETE * FROM add_comment WHERE (IdComment = ?) AND (IdBuyerC = ?)");
            $delete->execute(array($_GET['IdComment'], $_SESSION['Id']));

        }               
           
    }



j'ai bien le message d'echo qui s'affiche, mais l'erreur suivante s'affiche aussi :

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '* FROM add_comment WHERE (IdComment = '1') AND (IdBuyerC = '1')'

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '* FROM add_comment WHERE (IdComment = '1') AND (IdBuyerC = '1')'

2 réponses

Utilisateur anonyme
9 oct. 2018 à 17:46
Bonjour

C'est DELETE FROM et non pas DELETE * FROM
Quand on efface un enregistrement, c'est obligatoirement l'enregistrement complet. Il est inutile - et donc pas prévu dans SQL - de préciser '*'
1
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 1
9 oct. 2018 à 17:50
ahhh ouii ça fonctionne merci !
0
Utilisateur anonyme
9 oct. 2018 à 18:28
De rien.

Une autre fois, jette un coup d'œil au manuel mysql avant d'appeler au secours :
https://dev.mysql.com/doc/refman/8.0/en/delete.html
0
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 1 > Utilisateur anonyme
9 oct. 2018 à 18:46
ça marche :)
0
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 1
9 oct. 2018 à 17:29
J'ai aussi essayé comme ceci :

... WHERE IdComment = ? AND IdBuyerC = ? ");

... WHERE (IdComment = ? AND IdBuyerC = ?) ");

... WHERE IdComment = $_GET['IdComment'] AND IdBuyerC = $_SESSION['Id'] ");
0