Page 1 sur 1

classe de connection avec PDO()

Posté : 16 févr. 2008, 18:10
par x@v
Bonjour,
j'ai réssayer une autre méthode pour une classe de connection perso en php5.
edit
<?php
class ConnectionClass
{
	private $db = 'test'; //nom de la base de données
	private $host = 'localhost'; // nom de la machine hôte
	private $user = 'root'; // nom de l'utilisateur
	private $pwd = 'xav';// mot de passe 
	private $dsn;
	private $con;
	private $requette; // requette
	
	function __construct()
	{
		try 
		{
			$this->dsn = "mysql:dbname=$this->db;host=$this->host";
			$this->con = new PDO($this->dsn, $this->user, $this->pwd);	
		}
		catch (PDOException $e)
		{
			print 'Erreur ! : '.$e->getMessage().'<br/>';
			echo 'N° : '.$e->getCode();
			die();
		}
	}
	
	function reqSelection($requette)
	{
		$this->requette=$requette;
		$result = $this->con->query($requette);
		return $result;
	}
}
$conn=new ConnectionClass();
$resultat=$conn->reqSelection("select * From client");
$conn->query($resultat);
foreach ($result as $row)
{
echo $row['nomH'] . " - " . $row['prenomH'] . "<br />";
}
?>
le code ci-dessus me renvoie cette erreur

Code : Tout sélectionner

Fatal error: Call to undefined method ConnectionClass::query() in /var/www/agenda_d_or/ConnectionClass.php on line 36
Merci

Posté : 16 févr. 2008, 19:59
par AB
Ben oui, tu vois une fonction query dans ta classe ConnectionClass ?
PHP non plus.

Posté : 16 févr. 2008, 20:30
par mcorgnet
class ConnectionClass extends pdo
ou quelque chose du genre, et tu devrais hériter de la méthode query de pdo.

Posté : 17 févr. 2008, 08:23
par Xenon_54
Pourquoi "hardcoder" les informations d'accès dans ta classe?
De plus, quel sera le bénéfice d'étendre la classe PDO? As-tu l'intention d'ajouter des fonctionnalités?

Posté : 18 févr. 2008, 11:55
par x@v
Sa permet de centraliser le code et en cas de changement je n'aurrai pas besoin de parcourir tous les fichiers, mais je me tate, parce que je n'ai pas put économiser en ligne de code.
De plus le faite de ne pas pouvoir compter le résultat d'une requête me gène considérablement ?
<?php
class ConnectionClass
{
	private $db = 'test'; //nom de la base de données
	private $host = 'localhost'; // nom de la machine hôte
	private $user = 'root'; // nom de l'utilisateur
	private $pwd = '';// mot de passe 
	private $dsn;
	private $con;
	private $requette; // requette
	
	function __construct()
	{
		try 
		{
			$this->dsn = "mysql:dbname=$this->db;host=$this->host";
			$this->con = new PDO($this->dsn, $this->user, $this->pwd);
		}
		catch (PDOException $e)
		{
			print 'Erreur ! : '.$e->getMessage().'<br/>';
			echo 'N° : '.$e->getCode();
			die();
		}
		return $this->con;
	}
	
	function reqSelection($requette)
	{
		$result = $this->con->query($requette);
		return $result;	}
}
 
$Connec = new ConnectionClass();
$result = $Connec->reqSelection("select nom,prenom From client");
foreach ($result as $row)
{
	echo $row['nom'] . " - " . $row['prenom'] . "<br />";
}
?>