Requête Update et Delete en PDO
Résolu
modemo2018
Messages postés
226
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis entrain de créer une page me permettant de supprimer ou modifier une base de donnée, quand j'execute ma requête au lieu de supprimer ou de modifier la donnée, il ya insertion de la même donnée, ce que je n'arrive pas à comprendre,
Mes connaissances en PDO mysql sont un peu limité, est-ce la bonne manière d'écrire une telle requête en PDO?
quelqu'un peut-il m'aider?
Je suis entrain de créer une page me permettant de supprimer ou modifier une base de donnée, quand j'execute ma requête au lieu de supprimer ou de modifier la donnée, il ya insertion de la même donnée, ce que je n'arrive pas à comprendre,
Mes connaissances en PDO mysql sont un peu limité, est-ce la bonne manière d'écrire une telle requête en PDO?
quelqu'un peut-il m'aider?
try { $sql = 'UPDATE note SET notemat = :notemat WHERE idmat = :idmat, ideleve = :ideleve'; $datas = array('notemat' => $notemat,'idmat' => $idmat,'ideleve' => $ideleve ); } catch ( Exception $e ) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage (); print_r ( $datas ); exit; } } try { $req2 = $bdd->prepare('DELETE FROM note WHERE idmat = ? AND ideleve = ?'); $req2->execute(array($idmat, $ideleve)); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); }
A voir également:
- Benaughty supprimer compte
- Hiberfil.sys delete - Guide
- Juste delete me - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
4 réponses
En complément :
Comme tu peux le voir, le bloc
reste toujours le même...
La seule chose qui chose se sont les variables $sql et $datas
Pas besoin non plus de mettre des noms de variables différents à chaque requête ... $req ça suffit !
//Mise à jour : $sql = 'UPDATE note SET notemat = ? WHERE idmat = ? AND ideleve = ?'; $datas = array($notemat, $idmat, $ideleve); try{ $req = $bdd->prepare($sql); $req->execute($datas); } catch ( Exception $e ) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage (); print_r ( $datas ); exit; } }
//Suppression $sql = 'DELETE FROM note WHERE idmat = ? AND ideleve = ?'; $datas = array($idmat, $ideleve); try{ $req = $bdd->prepare($sql); $req->execute($datas); } catch ( Exception $e ) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage (); print_r ( $datas ); exit; } }
Comme tu peux le voir, le bloc
try{ $req = $bdd->prepare($sql); $req->execute($datas); } catch ( Exception $e ) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage (); print_r ( $datas ); exit; } }
reste toujours le même...
La seule chose qui chose se sont les variables $sql et $datas
Pas besoin non plus de mettre des noms de variables différents à chaque requête ... $req ça suffit !
Bonjour,
Je n'utilise toujours pas mysql et php, mais je suis toujours disponible pour te donner mes observations ;-)
1/ sans insert impossible de rajouter des lignes. Donc ce qui s'exécute n'est pas le code que tu penses, et donc pas tes extraits update, delete
2/ sur ces 2 ordres sql tu n'utilises même pas le même type de formulation, c'est n'importe quoi, il faut être cohérent
3/ il te faut reprendre tes questions précédentes sur le forum, jordane45 notamment t'a donné des exemples de syntaxes des ordres sql à suivre. Si tu ne tiens pas compte des remarques et ne capitalise avec les expériences passées, tu ne peux pas progresser.
4/ dans la syntaxe de base d'un update, on ne sépare pas les conditions du WHERE par une virgule, mais par un opérateur AND/OR/...
Je n'utilise toujours pas mysql et php, mais je suis toujours disponible pour te donner mes observations ;-)
1/ sans insert impossible de rajouter des lignes. Donc ce qui s'exécute n'est pas le code que tu penses, et donc pas tes extraits update, delete
2/ sur ces 2 ordres sql tu n'utilises même pas le même type de formulation, c'est n'importe quoi, il faut être cohérent
3/ il te faut reprendre tes questions précédentes sur le forum, jordane45 notamment t'a donné des exemples de syntaxes des ordres sql à suivre. Si tu ne tiens pas compte des remarques et ne capitalise avec les expériences passées, tu ne peux pas progresser.
4/ dans la syntaxe de base d'un update, on ne sépare pas les conditions du WHERE par une virgule, mais par un opérateur AND/OR/...
Après quelques recherches, j'ai fait des modifications mais les deux requête ne s'execute pas, il ya pas modification dans la base de donnée, et je n'ai pas un message d'erreur
try { $req5 = $bdd->prepare('UPDATE note SET notemat = ? WHERE idmat = ? AND ideleve = ?'); $req5->execute(array($notemat, $idmat, $ideleve)); } catch ( Exception $e ) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage (); print_r ( $datas ); exit; } } try { $req2 = $bdd->prepare('DELETE FROM note WHERE idmat = ? AND ideleve = ?'); $req2->execute(array($idmat, $ideleve)); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); }
bonjour, si je comprends ce que tu essaies de faire, tu supprimes immédiatement les enregistrements que tu viens de modifier? est-ce bien cela que tu veux?
pour comprendre ce que fait ton code, je suggère que tu fasses d'abord une requête pour visualiser les enregistrements.
je vois que tu imprimes $datas. pourquoi?
pour comprendre ce que fait ton code, je suggère que tu fasses d'abord une requête pour visualiser les enregistrements.
je vois que tu imprimes $datas. pourquoi?
$datas est imprimé pour m'avertir au cas où il ya erreur lors de l'execution
Oui je veux donner la possibilité de supprimer ou de modifier une donnée dans la BDD
Les enregistrements ont été déjà fait dans une autre page, et ça se passe bien, mais c'est juste la suppression et la modification que je n'arrive pas à faire
Oui je veux donner la possibilité de supprimer ou de modifier une donnée dans la BDD
Les enregistrements ont été déjà fait dans une autre page, et ça se passe bien, mais c'est juste la suppression et la modification que je n'arrive pas à faire
que contient $datas?
pour comprendre ce que fait ton code, je suggère que tu fasses d'abord une requête pour visualiser les enregistrements, juste avant de les mettre à jour ou de les supprimer.
si je comprends bien, tu ne nous montres qu'une partie de ton code, nous avons donc du mal à comprendre.
imprimes-tu un message quand la mise à jour ou la suppression se passe sans erreur?
imprimes-tu les valeurs utilisées dans la clause where?
pour comprendre ce que fait ton code, je suggère que tu fasses d'abord une requête pour visualiser les enregistrements, juste avant de les mettre à jour ou de les supprimer.
si je comprends bien, tu ne nous montres qu'une partie de ton code, nous avons donc du mal à comprendre.
imprimes-tu un message quand la mise à jour ou la suppression se passe sans erreur?
imprimes-tu les valeurs utilisées dans la clause where?