Update PDO

Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 27 mai 2015 à 15:14
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 27 mai 2015 à 15:43
Bonjour à tous !

J'ai un petit soucis sur ce bout de code et sollicite votre aide :
<?php
$NumId = $_GET["info"];

$Fr_Titre					= $_POST["Fr_Titre"];
$Fr_Descriptions			= $_POST["Fr_Descriptions"];
$En_Titre					= $_POST["En_Titre"];
$En_Descriptions			= $_POST["En_Descriptions"];
$CI 						= isset($_POST["CI"]) ? "1" : "0";
$SN 						= isset($_POST["SN"]) ? "1" : "0";

$Fr_Titre					= stripslashes($Fr_Titre);
$Fr_Descriptions			= stripslashes($Fr_Descriptions);
$En_Titre					= stripslashes($En_Titre);
$En_Descriptions			= stripslashes($En_Descriptions);

$FR_PDO = $pdo->prepare("UPDATE tb_fr_infos SET Titre=:Fr_Titre, Descriptions=:Fr_Descriptions, CI=:CI, SN=:SN WHERE NumId = '$NumId' ");
$FR_PDO->bindParam(":Titre", $Fr_Titre); 
$FR_PDO->bindParam(":Descriptions", $Fr_Descriptions); 
$FR_PDO->bindParam(":CI", $CI); 
$FR_PDO->bindParam(":SN", $SN); 
$FR_PDO->execute();

$EN_PDO = $pdo->prepare("UPDATE tb_en_infos SET Titre=:En_Titre, Descriptions=:En_Descriptions, CI=:CI, SN=:SN WHERE NumId = '$NumId' ");
$EN_PDO->bindParam(":Titre", $En_Titre); 
$EN_PDO->bindParam(":Descriptions", $En_Descriptions); 
$EN_PDO->bindParam(":CI", $CI); 
$EN_PDO->bindParam(":SN", $SN); 
$EN_PDO->execute();

if($req){echo("<div class=\"Message\">L'enregistrement a été édité avec succès.</div>");}else{
echo("<div class=\"Erreur\">Une erreur est survenue lors de l'enregistrement.</div>");} exit();
if (!empty($_GET["msg"])){$msg=urldecode($_GET["msg"]); $msg=stripslashes($msg); echo("<div class=\"Erreur\">$msg</div>");}
?>


Je ne comprends pas pourquoi il n'édite pas :\

3 réponses

Utilisateur anonyme
27 mai 2015 à 15:21
Bonjour

Tu appelles tes marqueurs :Fr_Titre, :Fr_Description... dans tes requêtes, mais :Titre et :Description seulement dans tes bindParam
1
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
27 mai 2015 à 15:27
J'ai essayé ça aussi... je bidule ::s
$FR_PDO = $pdo->prepare("UPDATE tb_fr_infos SET Titre=:Fr_Titre, Descriptions=:Fr_Descriptions, CI=:CI, SN=:SN WHERE NumId = '$NumId' ");
$FR_PDO->bindParam(":Fr_Titre", $Fr_Titre); 
$FR_PDO->bindParam(":Fr_Descriptions", $Fr_Descriptions); 
$FR_PDO->bindParam(":CI", $CI); 
$FR_PDO->bindParam(":SN", $SN); 
$FR_PDO->execute();
Rien y fait ! Il n'édite aucune ligne...
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
Modifié par blackduck le 27/05/2015 à 15:31
Le père à raison :
Tu écris
$FR_PDO->bindParam(":Titre", $Fr_Titre);

Mais dans ta requête tu écris ":Fr_Titre"

$FR_PDO->bindParam(":Fr_Titre", $Fr_Titre);

serait correct, idem pour description.

Je me pose quelques questions :
Pourquoi ne pas utiliser le bindParam pour les paramètres des clauses WHERE?

Ta variable $req de la condition qui suit le dernier execute() est elle définit dans un code précédent que nous n'avons pas?

Exit stop bien le script courant? Quel est l'intérêt de la condition après le exit()?

Résolu? ===> [RESOLU]
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
27 mai 2015 à 15:37
Fr_Titre et Fr_Descriptions sont le nom de mes textarea
Je suis nouveau, mais vraiment TRES nouveau avec les pdo :s C'est ma première "edition" et je ne comprends presque rien a rien :'(
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
Modifié par Sinistrus le 27/05/2015 à 15:45
Voici ce que j'ai par fini mais qui ne fonctionne toujours pas :
<?php
$NumId = $_GET["info"];

$Fr_Titre    = $_POST["Fr_Titre"];
$Fr_Descriptions   = $_POST["Fr_Descriptions"];
$En_Titre    = $_POST["En_Titre"];
$En_Descriptions  = $_POST["En_Descriptions"];
$CI      = isset($_POST["CI"]) ? "1" : "0";
$SN      = isset($_POST["SN"]) ? "1" : "0";

$Fr_Titre    = stripslashes($Fr_Titre);
$Fr_Descriptions   = stripslashes($Fr_Descriptions);
$En_Titre    = stripslashes($En_Titre);
$En_Descriptions  = stripslashes($En_Descriptions);

$FR_PDO = $pdo->prepare("UPDATE tb_fr_infos SET Titre=:Fr_Titre, Descriptions=:Fr_Descriptions, CI=:CI, SN=:SN WHERE NumId = '$NumId' ");
$FR_PDO->bindParam(":Fr_Titre", $Fr_Titre); 
$FR_PDO->bindParam(":Fr_Descriptions", $Fr_Descriptions); 
$FR_PDO->bindParam(":CI", $CI); 
$FR_PDO->bindParam(":SN", $SN); 
$FR_PDO->execute();

$EN_PDO = $pdo->prepare("UPDATE tb_en_infos SET Titre=:En_Titre, Descriptions=:En_Descriptions, CI=:CI, SN=:SN WHERE NumId = '$NumId' ");
$EN_PDO->bindParam(":En_Titre", $En_Titre); 
$EN_PDO->bindParam(":En_Descriptions", $En_Descriptions); 
$EN_PDO->bindParam(":CI", $CI); 
$EN_PDO->bindParam(":SN", $SN); 
$EN_PDO->execute();

if($req){echo("<div class=\"Message\">L'enregistrement a été édité avec succès.</div>");}else{
echo("<div class=\"Erreur\">Une erreur est survenue lors de l'enregistrement.</div>");}
if (!empty($_GET["msg"])){$msg=urldecode($_GET["msg"]); $msg=stripslashes($msg); echo("<div class=\"Erreur\">$msg</div>");}
?>


pourtant cette page là fonctionne bien :
<?php
$NumId = $_GET["rss"];

$Date						= $_POST["Date"];
$Titre						= $_POST["Titre"];
$Descriptions				= $_POST["Descriptions"];
$Lien						= $_POST["Lien"];

$Date						= stripslashes($Date);
$Titre						= stripslashes($Titre);
$Descriptions				= stripslashes($Descriptions);
$Lien						= stripslashes($Lien);

$PDOStatement = $pdo->prepare("UPDATE tb_rss SET Date=:Date, Titre=:Titre, Descriptions=:Descriptions, Lien=:Lien WHERE NumId = '$NumId' ");
$PDOStatement->bindParam(":Date", date('Y-m-d H:i:s', strtotime($Date)));
$PDOStatement->bindParam(":Titre", $Titre); 
$PDOStatement->bindParam(":Descriptions", $Descriptions); 
$PDOStatement->bindParam(":Lien", $Lien); 
$PDOStatement->execute();

if($req){echo("<div class=\"Message\">Le flux RSS a été édité avec succès.</div>");}else{
echo("<div class=\"Erreur\">Une erreur est survenue lors de l'enregistrement.</div>");} 
if (!empty($_GET["msg"])){$msg=urldecode($_GET["msg"]); $msg=stripslashes($msg); echo("<div class=\"Erreur\">$msg</div>");}
?>
0