classe de connection avec PDO()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : classe de connection avec PDO()

par x@v » 18 févr. 2008, 11:55

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 />";
}
?>

par Xenon_54 » 17 févr. 2008, 08:23

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?

par mcorgnet » 16 févr. 2008, 20:30

class ConnectionClass extends pdo
ou quelque chose du genre, et tu devrais hériter de la méthode query de pdo.

par AB » 16 févr. 2008, 19:59

Ben oui, tu vois une fonction query dans ta classe ConnectionClass ?
PHP non plus.

classe de connection avec PDO()

par x@v » 16 févr. 2008, 18:10

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