Page 1 sur 1

Petits soucis suite à mes requetes préparée

Posté : 27 avr. 2010, 19:52
par diabless6
Bonsoir,

Alors j'ai dû changer un peu mon code pour les requêtes préparées, c'est fou comme j'avance :mrgreen:
Mon if($reqprep===FALSE) ne fonctionne plus !
et ensuite, je ne sais pas comment libérer ma connexion :

Sur un livre c'est écrit a partir de la requête préparée :
$sql = "SELECT * FROM article where auteur =:auteur";
$stmt = $dbh->prepare($sql);
$stmt->execute(array(':auteur'=>$auteur));
echo '<pre>';
while ($row = $stmt->fetch()) {
echo $row['titre'],'<br/>';
echo $row['auteur'],'<br/>';
}
$stmt = NULL;
Tandis que là, je libère comme ceci $id_con=null; Alors je ne sais pas. :roll:
<?php
include("mysqlconnex.inc.php");
if(!empty($_POST["nom"]) && !empty($_POST["prenom"]) )
{
   
$id="\N";
$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$mail=$_POST["mail"];

//requêtes
if(!empty($mail))
{$mail=$mail;}
else{$mail="A REMPLIR !";}
$id_con=connPDO(); 
$requete="INSERT INTO personne VALUES(:id,:nom,:prenom,:mail,)";
$reqprep=$id_con->prepare($requete);
$reqprep->execute(array(':id'=>$id,':nom'=>$nom,':prenom'=>$prenom,':mail'=>$mail));

if($reqprep===FALSE)
     {
        $erreur=$id_con->errorInfo();
        echo'Erreur d\'insersion code: '.$id_con->errorCode().' : '.$erreur[2];
     }
else
    {   $id=$id_con->lastInsertId();
        echo'Enregistrement reussie ! votre Id:'.$id.'<br/>';
        echo "<script type=\"text/javascript\">setTimeout(\"window.location='"."affichage.php'\",3000)</script>";
        //echo'<meta http-equiv="refresh" content="3; URL=http://'.$host.$url.'affichage.php"/>';
    }
    
$id_con=null;
}
elseif(empty($reqprep)) {echo'<h1>Merci de remplir</h1>';}

?>
Merci

Re: Petits soucis suite à mes requetes préparée

Posté : 27 avr. 2010, 21:51
par Dr@ke
En général on utilise les exceptions avec PDO.
http://php.net/manual/fr/language.exceptions.php
Fais des recherches sur google ou même le manuel, il y a pleins d'exemples et même sur ce forum...

Sinon vue que execute retourne soit false ou true.

Si tu modifies ceci:
$reqprep->execute(array(':id'=>$id,':nom'=>$nom,':prenom'=>$prenom,':mail'=>$mail));
par:
$reqprep = $reqprep->execute(array(':id'=>$id,':nom'=>$nom,':prenom'=>$prenom,':mail'=>$mail));

Re: Petits soucis suite à mes requetes préparée

Posté : 27 avr. 2010, 22:08
par diabless6
Ha! oui ça marche mieux ! Je m'embrouille à force de modifier 50 fois mon code.

C'est comme les quotes elles ne servent plus à rien avec les requêtes préparées.

Après pour libérer les ressources je pense faire comme ça :

$reqprep=null; ou $reqprep->closeCursor(); c'est pareil j'ai l'impression
$id_con=null;

Re: Petits soucis suite à mes requetes préparée

Posté : 27 avr. 2010, 22:14
par Dr@ke
$id_con=null;
Mais en général ce n'est pas nécessaire puisque la connexion se ferme automatiquement à la fin du script.