Bonjour,

Je rencontre un souci lié à la réalisation de requêtes via PDO, et le message d'erreur suivant :
Fatal error: Call to undefined method Connexion::query() in
J'ai d'abord réalisé une classe pour effectuer la connexion :

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
<?php
class Connexion
	{
		/* ********** */
		/* Propriétés */
		/* ********** */
		/*
		private : seules les méthodes de la classe dans laquelle est définit l'attribut peuvent y accéder et le modifier
		protected : seules les méthodes de la classe et des éventuelles classes héritées peuvent accéder à l'attribut et le modifier
		public : tout le monde peut accéder à l'attribut en question.
		*/
		protected $dsn;
		protected $user;
		protected $password;
 
		/* ************ */
		/* Constructeur */
		/* ************ */
		/* Connexion à une base ODBC avec l'invocation de pilote */
 
		public function __construct()
		{
			$this->dsn = 'mysql:dbname=myDbData;host=localhost'; 
			$this->user = 'root';
			$this->password = '';
 
			try {
				$connexion = new PDO($this->dsn, $this->user, $this->password);
			} 
			catch (PDOException $e) 
			{
				echo 'Connexion échouée : ' . $e->getMessage();
			}
 
			return $connexion;
		}
	}
?>
J'ai ensuite dans ma page :

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
<?php	
 
	/* *************************** */
	/* Auto-chargement des classes */
	/* *************************** */
	function LoadCl($cl)
	{
		// Inclusion de la classe passée en paramètre
		require ('../library/'.$cl.'.cl.php');
	}
	//Enregistrement de la fonction en autoload pour qu'elle soit appelée à l'instanciation d'une classe (non déclarée)
	spl_autoload_register('LoadCl');
 
	/* ******** */
	/* Includes */
	/* ******** */
	include '/monFichier.php';
 
        /* ********* */
	/* Connexion */
	/* ********* */
	$connexion = new Connexion();
 
?>
Je tente enfin d'utiliser cette classe Connexion depuis un fichier php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?php
public function getlast($lang, $number)
		{
			global $connexion; //Connexion à la DB, global->propriété existante	
 
			$request = $connexion->query('SELECT * FROM myDBTable ORDER BY id DESC LIMIT 0,'.$number);
			return $request;
		}
?>
Par avance merci pour vos suggestions.
Philosophiste.