Update PDO

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
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 :\

A voir également:

3 réponses

Utilisateur anonyme
 
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 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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   Statut Membre Dernière intervention   96
 
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 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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