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 .