Vous n'êtes pas identifié(e).

#1 27/09/2014 15:38:17

zohit
Membre

update la table dans postgresql avec php

bonjour ;
s'il vous plait j'ai un probleme je viens de modifier les champs dans bdd postgresql  ,en cliquant sur modifier, le resultat me donne connexion OK , modification avec succés mais rien ne change dans ma bdd , aidez moi svp voila j'ai séparé en 2 pages une contient
<?php
session_start();
try
{
  $bdd = new PDO("pgsql:host=localhost;dbname=stage", "postgres", "123");
   echo 'Connexion OK';
}
catch(Exception $e)
{
   die('Erreur : '.$e->getMessage());
}
$id = $_SESSION['id'];

$nom_user = $_POST['nom_user'];
$ville = $_POST['ville'];
$region_user = $_POST['region_user'];
$etat = $_POST['etat'];
$couleur = $_POST['couleur'];
$reponse = $bdd->prepare("update projets set nom_user = '$nom_user' , ville = '$ville' , region_user = '$region_user' ,etat = '$etat', couleur = '$couleur'  where id_projet = $id ");
if($reponse)  {  echo "<script>
           alert('Modification avec succéq!! ')
             </script>";
              }
else {
        echo "<script>
alert('Erreur de modification! ')
</script>";
      }

   $reponse ->execute(array());

//header('location:../admin.php');


?>


****************************************
et dans l'autre page j'ai
<?php
session_start();
try
{

  $bdd = new PDO("pgsql:host=localhost;dbname=stage", "postgres", "123");


}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
$id = $_GET['id'];

$_SESSION['id'] = $id;

$reponse = $bdd->prepare("SELECT * FROM projets where id_projet='$id'");
$reponse->execute();
$tab = $reponse->fetch();
?>

<form name="f1" method="POST" action="script/updateprojet.php">

    <tr>
    <td> Nom : </td>  <td> <input name="nom_user" style="width:160px;" type='text' id="name" value="<?php echo $tab['nom_user'];  ?>" placeholder="Enter le nom" maxlength="20" class='float'/> </td>
     </tr><br></br>
     <tr>
    <td> VILLE : </td>  <td><input name="ville" style="width:160px;" type='text' id="name" value="<?php echo $tab['ville'];  ?>" placeholder="Enter la ville" maxlength="20" class='float'/> </td>
     </tr>
     <tr><br></br>
    <td> REGION :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>  <td><input name="region_user" style="width:160px;" type='text' id="name" value="<?php echo $tab['region_user'];  ?>" placeholder="Enter  la region" maxlength="20" class='float'/> </td>
     </tr><br></br>
     <tr>
    <td> ETAT :&nbsp;&nbsp;&nbsp; </td>  <td><input name="etat" style="width:160px;" type='text' id="name" value="<?php echo $tab['etat'];  ?>" placeholder="Enter l'auteur" maxlength="20" class='float'/> </td>
     </tr><br></br>
     <tr>
    <td> COULEUR : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>  <td><input name="couleur" style="width:160px;" type='text' id="name" value="<?php echo $tab['couleur'];  ?>" placeholder="Enter la ville" maxlength="20" class='float'/> </td>
     </tr><br></br>

  <tr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <td> </td> <td><input name="submit2" type="submit" class="btn_submit_vert" value="Modifier"/> </td>
     </tr>

  </form>

Hors ligne

#2 27/09/2014 18:17:59

rjuju
Administrateur

Re : update la table dans postgresql avec php

Bonjour,

Votre test ne vérifie que si la requête est préparée, pas si elle est exécutée avec succès (la modification se fait au moment de l'appel ->execute). De plus, si vous utilisez des requêtes préparées, vous devriez passer les paramètres au moment de l'exécution et non de la préparation, cela permet de mieux gérer les problème d'échappement et donc d'injection SQL. Je ne connais pas PDO, mais peut être qu'il est nécessaire de valider la transaction (commit) explicitement. Vous devriez regarder du côté de la documentation de PDO.

Hors ligne

#3 28/09/2014 20:42:15

zohit
Membre

Re : update la table dans postgresql avec php

voila maintenant j'ai changé ces lignes mais je reçois erreur de modification sad
$sth= $bdd->prepare("update projets set nom_user = :nom_user , ville = :ville , region_user = :region_user ,etat = :etat, couleur = :couleur  where id_projet = :id ");
$retour = $sth->execute(array(':nom_user'=>$nom_user, ':ville'=>$ville, ':region_user'=>$region_user, ':etat'=>$etat, ':couleur'=>$couleur));
if($retour)  {  echo "<script>
           alert('Modification avec succès!! ')
             </script>";
              }
else {
        echo "<script>
alert('Erreur de modification! ')
</script>";
      }

Dernière modification par zohit (28/09/2014 23:05:46)

Hors ligne

#4 28/09/2014 22:37:01

gleu
Administrateur

Re : update la table dans postgresql avec php

Après etat, il y a un point-virgule à la place d'une virgule.


Guillaume.

Hors ligne

#5 28/09/2014 23:07:07

zohit
Membre

Re : update la table dans postgresql avec php

ouiii merci bcp , j'ai fais attention au ;

Hors ligne

Pied de page des forums