IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PEAR][DB] Récuperatin de données (PHP5 + PostgreSql)


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 27
    Par défaut [PEAR][DB] Récuperatin de données (PHP5 + PostgreSql)
    salut à tous
    je développe un aplication web en PHP5 avec l'aide des bibliotéques PEAR .
    j'ai une page de connexion qui permet de s'identifier et d'effectuer la connexion à la base de donée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php
    require_once 'DB.php';
    require_once 'outil.php';
     
    $user = $_SESSION['user']; 
    $passwd = $_SESSION['passwd'];
    $sqlServer = 'webpetrins';
    $dataBaseName ='db_petrins';
     
    $dsn ='pgsql://'.$user.':'.$passwd.'@'.$sqlServer.'/'.$dataBaseName;
    $db = DB::connect($dsn);
    $_SESSION['db'] = clone $db;
    if (DB::isError($db))
    	{	
    		message_erreur($db->getCode());
        		die($db->getMessage());
    	}
    $_SESSION['labase'] = $db;
    $db->setFetchMode (DB_FETCHMODE_ASSOC);
     
    	$res=$db->query("select idMag from t_utilisateur_mag natural join t_utilisateur where nomUtilisateur='".$user."' and passwdUtilisateur='".$passwd."'");
    	if (DB::isError($res))
    		{
    			message_erreur($res->getCode());
    				die ($res->getDebugInfo());
    		}
    	$i=0;
    	while ($row =& $res->fetchRow())
    	{		
    		$tres[$i]=$row['idmag'];
    		$i=$i+1;
    	}
    $res->free();	
    $_SESSION['tabidmag']=$tres;
    j'ai aussi crée une classe article dont voici un bout du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <?php
     
    	class article
    	{
     
    		protected $idart;
    		protected $desart;
    		protected $typart;//code de TVA
    		protected $codeartfourn;
    		protected $idunite; //unité de gestion 
    		protected $typcond;
    		protected $ugedscond;
    		protected $typunitevte;
    		protected $qteutile;
    		protected $ugedsvte;
    		protected $idfourn;
    		protected $idssfamart;
    		protected $prixcourantvte;
    		protected $prixcourantug;
    		protected $prixcourrvte;
    		protected $pxqteutile;
    		protected $pxunitecondition;
    		protected $qteminliv;
    		protected $condliv;
    		protected $ddermaj;
    		protected $db;
     
    		function __construct($id)
    		{
     
    			/* constructeur de la classe object avec comme paramettre l' id de l'article*/
    			$this->db = $_SESSION['db'];
    			if ($id != '')
    			{
    				$this->charge($id);
    			}
     
    		}
     
     
    		protected function execute($val)
    		{
    			/* Execute une requette SQL passer en paramettre*/
    			$db=$this->db;	
    			$res=$db->query($val);
     
    			if (DB::isError($res))
    			{
    				die ($res->getDebugInfo(). " ".$res->getMessage()." ".$res->getCode()." ".$res->getUserInfo());
    			}
    			return $res;
    		}
    		public function charge($id)
    		{
     
    			/*cette fonction prend en paramettre l'identifiant d'un article , recherche
    			les information dans la basse et les affectes dans les arguments*/
    			$requette= "select * from tblart where idart=".$id;
    		$res=$this->execute($requette);
    			$db=$this->db;
    			$res= $this->execute($val);
    			$row= $res->fetchrow();
    			$this->desart=strtoupper($row['desart']);
    			$this->typart=$row['typart'];
    			$this->codeartfourn=$row['codeartfourn'];
    			$this->idunite=$row['idunite'];
    			$this->ugedscond=$row['ugedscond'];
    			$this->typunitevte=$row['typunitevte'];
    			$this->qteutile=$row['qteutile'];
    			$this->ugedsvte=$row['ugedsvte'];	
    			$this->idfourn=$row['idfourn'];
    			$this->idssfamart=$row['idssfamart'];
    			$this->prixcourantvte=$row['prixcourantvte'];
    			$this->prixcourantug=$row['prixcourantug'];
    			$this->prixcourrvte=$row['prixcourrvte'];
    			$this->pxqteutile=$row['pxqteutile'];
    			$this->pxunitecondition=$row['pxunitecondition'];
    			$this->qteminliv=$row['qteminliv'];
    			$this->condliv=$row['condliv'];
    			$this->ddermaj=$row['ddermaj'];
    		}	
    ....
    }
    j'en arrive au probléme : lors de l'intansiation de la classe article le constructeur à pour paramettre l' id de l'article. il appelle la fonction charge avec l'id de l'article . cette fonction doit executer une requette SQL qui charge les valeurs dans la clases article . Or dans la fonction execute $res est reconu comme une erreur lors du test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (DB::isError($res))
    			{
    				die ($res->getDebugInfo(). " ".$res->getMessage()." ".$res->getCode()." ".$res->getUserInfo());
    			}
    mais le message d'erreur ne m'aide pas à trouver ou je me trompe.
    [DB Error: unknown error] DB Error: unknown error -1 [DB Error: unknown error]
    merci d'avoir deja tout lu . Vous avez des proposition à faire je suis ouvert à tout .

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Que peut bien faire l'objet de connexion à la base de données dans $_SESSION ?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 27
    Par défaut
    au debut je voulais passer la connexion par session pour ne pas inclure le fichier de connexion tout le temp. en effet je voudrai ouvrir le mois de connection à la base possible.
    Comme mon code le marché pas j'ai finalement inclut le fichier sans retoucher au reste .

Discussions similaires

  1. [PostgreSQL] Création base de données avec postgresql 8.4 sous Ubuntu server 9.10
    Par cyreel dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 07/12/2009, 18h10
  2. créer une base de données en PostgreSQL sous DOS
    Par ririrourou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 29/04/2009, 15h33
  3. Recuperer les données de PostGreSQL
    Par gagalive dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 06/03/2009, 17h29
  4. PHP5 PostgreSQL 8
    Par zyongh dans le forum Debian
    Réponses: 4
    Dernier message: 24/06/2007, 23h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo