bonjour à tous,

je n' arrive pas à résoudre mon problème je viens donc vers vous afin de trouver la solution ...
j'instancie ma bdd dans une classe, mais cela provoque une exception de ce type :
Fatal error: Exception thrown without a stack frame in Unknown on line 0
j'ai commenté plusieurs parties de ma classe pour trouver d'ou vient le probleme, et cette exception disparait quant je commente la ligne qui instancie la bdd ...

voici le code de al classe :
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 
<?php
	class SessionManager
	{
	//	------------------------ ATTRIBUTS -----------------------------------
		private $db;
		private static $compteur = array();
 
	//	------------------------ METHODES -----------------------------------							
		//	GETTERS
		public static function getCompteur()
		{
			return self::$compteur;
		}		
		//	SETTERS
		private static function setCheckSession($valeur)
		{
			self::$compteur[$valeur] = 1;
		}
		private function setCompteur($value)
		{
			self::$compteur[$value] = 0;
		}
		public function setDb(PDO $bdd)
		{
			$this->db = $bdd;
		}
		//	Public
		public function __construct(PDO $bdd)
		{
			$this->setDb($bdd);
			try	// Requetes
			{
				$attr = $this->db->query('SELECT * FROM secteurs');
				$q = $this->db->query('SELECT * FROM formulaires
								INNER JOIN secteurs ON secteurs.id_secteur = formulaires.id_sect
								WHERE etat = \'En cours\'');
			}
			catch(Exception $e)
			{
				die('Erreur: '.$e->getMessage());
			}
			while($attribut = $attr->fetch(PDO::FETCH_OBJ))		// creation et affectation de l' attribut compteur
			{
				$this->setCompteur($attribut->nom_secteur);
			}
			while($ses=$q->fetch(PDO::FETCH_OBJ))				// Recherche des sessions en cours pour creation d'objet !!
			{
				$_SESSION[$ses->nom_secteur] = new Session($ses);
				self::setCheckSession($ses->nom_secteur);
			}
		}
		public function listeSession()				// Listage du statut de toutes les sessions
		{
			foreach(self::getCompteur() as $key=>$value)
			{
				if($value)
				{
					echo 'Vous avez une session  '.$_SESSION[$key]->getNomSecteur().'  en cours, son ID est <a href="session.php?secteur='.$_SESSION[$key]->getNomSecteur().'">'.$_SESSION[$key]->getIdFormulaire().'</a><br />';
				}
				else
				{
					echo ' il n\'y a pas de session '.$key.' en cours.<br />';
				}
			}			
		}
		public function create($nom)
		{
			if(isset($_SESSION[$nom]))
			{
				//echo 'Une session '.$nom.' existe déjà';
				return $_SESSION[$nom];
			}
			else
			{
				$idSect = $this->db->query('SELECT id_secteur FROM secteurs WHERE nom_secteur = '.$nom)->fetchColumn();
				$infoSes = $this->db->prepare('INSERT INTO formulaires SET id_sect = :id_sect, date_session = :date_session, etat = :etat');
				$infoses->bindValue(':id_sect', $idSect, PDO::PARAM_INT);
				$infoses->bindValue(':date_session', time());
				$infoses->bindValue(':etat', 'En cours');
				$infoses->execute();
				$idSes = lastInsertId($this->db);
				$q = $this->db->query('SELECT * FROM formulaires
								INNER JOIN secteurs ON secteurs.IDsect = formulaires.ID_sect
								WHERE IDform = '.$idSes)->fetch(PDO::FETCH_OBJ);
				return new Session($q);
			}
		}
		public function delete($nom)
		{
 
		}
		public function modify($nom)
		{
		}
	}
?>
voici le début de la page qui lance la création de classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
	session_cache_limiter('private_no_cache');
	session_start();
	include('commun/php_fonctions.php');
	$bdd = db_connect('localhost','base test','David','********',array());		// Connection à la BDD sauve trade
	function chargerClasse($classe)										// Auto load de la classe à creer
	{
		require 'class/'.$classe.'.class.php';
	}
	spl_autoload_register('chargerClasse');								// Ajout de la classe dans la pile d'autoload
	$_SESSION['SM'] = new SessionManager($bdd);
?>
et voici le fichier 'php_fonctions.php'
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
 
<?php
	function db_connect($host,$db,$name,$pass,$options)
	{
		try
		{
			$bdd = new PDO('mysql:host='.$host.';dbname='.$db, $name, $pass, $options);
			$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
			$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
		}
		catch(exception $e)
		{
			die('erreur :'.$e->getMessage());
		}
		return $bdd;
	}
?>
pouvez vous m'eclaircir sur la raison du probleme et comment le corriger svp?
 
mercid 'avance :)