Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2008, 13h50   #1
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

Informations professionnelles :
Activité : Technophile Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
Par défaut [POO] Faire appel au constructeur de la classe parent

Bonjour,

J'ai une classe (faite maison) qui hérite de PDO. A la création d'une instance de cette classe je créer mon objet PDO. Mais je pense que je n'appel pas bien le constructeur de la classe parent, puisque quand je fait un var_dump de l'instance, la variable (correspondant à l'objet PDO) est null.
Voici la classe
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
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/** Extension of class PDO which log all error message
 * @author Marwan Rabbaa
 * @version 0.1 b 1
 */
class LogedPDO extends PDO 
{
	const ZONE = "UTC"; // timezone
	const PATH = "/var/log/skyline/pdo.txt" ;
	const XML_FILE = "/Documents and Settings/mrabbaa/Mes documents/workspace/skyrecon/class/mysql-errror-code.xml";
	private $dbh; // a string name of database
	private $date;
	private $sql; // the SQL query we are trying to execute
	private $doc; // document DOM for readin error messages
	private $errorMessage; // a string
	private $handle = false; // boolean (if file is open)
	/** Construct the database link 
	 * @param The host name or ip adress
	 * @param The database name
	 * @param The login
	 * @param The password
	 */
	public function __construct($host,$database,$login,$pass)
	{
		$this -> dbh = parent :: __construct ('mysql:host='.$host.';dbname='.$database.'', $login, $pass);
		$this -> doc = new DomDocument();
		$this -> doc->load(self :: XML_FILE);
		$this -> handle = fopen(self :: PATH,'a');
	}
	/** Execute an SQL querie 
	 * @return An array 
	 */
	public function execute($sql)
	{
		$return = array();
		$this->sql=sql;
		try 
		{
			$smth =$this->prepare($this->sql);	
			$smth->execute();
			$result = $smth->fetchAll(PDO :: FETCH_NUM);
			if(count($result)==0)
			{
				$this->setMessage(0);
			}
			else
			{
				foreach($result as $indice => $tab)
				{
					foreach($tab as $key => $value)
					{
						array_push($return,$value);
					}
				}
			}
		} 
		catch (PDOException $e) 
		{
			$this->setMessage($smth->errorCode());
		}
	}  
	private function writeActivity($msg)
	{
		date_default_timezone_set(self :: ZONE);
		$this->date('l dS \of F Y h:i:s A');
		fopen(self :: PATH, "a");
		fwrite(self :: PATH, $this->date.$msg);
	} 
	/** Set a message String correspondant to a pdo error code
	 * @param Error code
	 */
	private function getMessage($param)
	{
		$errors = $this->doc->getElementsByTagName("error");
		foreach($errors as $node)
		{ 
			 if($node->hasAttribute("code") && $node->getAttribute("code") == $param)
			 { 
			 	$this->errorMessage = $node -> getAttribute ("value");
			 }
		}
	}      
	/** Reading method
	@return The error message in cas of database error */
	public function writeMessage()
	{
		$msg='Erreur MySQL : '.$this->errorMessage;
		$this->writeActivity($msg);
	}
	public function __destruct()
	{
		unset($this->doc);
		fclose($this->handle);
	} 
}
?>
__________________
http://aldorande.miniville.fr/ind
Fedora 8, eclipse 3.3 sur x86_64
--------------
Colorer votre code php
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 14h13   #2
Membre régulier
 
Avatar de daajack
 
Inscription : octobre 2007
Messages : 97
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 97
Points : 78
Points : 78
les espaces c'est pour éviter les smileys intempestifs ?

Sinon c'est plutôt :
Au lieu de :
daajack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 14h30   #3
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

Informations professionnelles :
Activité : Technophile Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
ah bien à savoir ça

merci
__________________
http://aldorande.miniville.fr/ind
Fedora 8, eclipse 3.3 sur x86_64
--------------
Colorer votre code php
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h16.


 
 
 
 
Partenaires

Hébergement Web