[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:
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:
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:
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.
Citation:
[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 .