Page 1 sur 1

class et PDO

Posté : 15 mai 2008, 17:07
par bruno.rotrou
salut
j'utilise pdo et amfphp pour interroger une BD sqlserver et recuperer tous ca ds flex.

coté php j'ecris une classe qui inclus pdo que je place ds mon service amfphp
dont voici le code
<?php
class test_pdo{
// ----o Constructor
function __construct(){
}//fin construct
	
//--------------O Methodes
/**
 récupère l'ensemble des données
*/
function test(){
//defintion des variables de connexions
$user='xx';
$pass='xxxxx';
$dsn='mssql:host=serveursql;dbname=bz';


try {
	$dbh= new PDO($dsn,$user,$pass);
	}catch(PDOException $e){die ("erreur ! : ".$e->getMessage());}
	

//lecture enregistrement
$sql="SELECT * FROM groupe";
return $dbh->query($sql);

//$dbh= NULL;

}

}//fin class
?>
ca marche parfaitement
mais quand je veus ecrire le connexion pdo ds mon constructeur pour separer ma connexion de ma requete je tape le code suivant et la ca marche pas , je comprend pas car quand moi je definit une classe comme celle ci ca marche ?????
<?php
class test_pdo{
// ----o Constructor
function __construct(){
//defintion des variables de connexions
private $user='xx';
private $pass='xxxxx';
private $dsn='mssql:host=serveursql;dbname=bz';
}//fin construct
	
//--------------O Methodes
/**
 récupère l'ensemble des données
*/
function test(){


try {
	$dbh= new PDO($this->$dsn,$this->$user,$this->$pass);
	}catch(PDOException $e){die ("erreur ! : ".$e->getMessage());}
	

//lecture enregistrement
$sql="SELECT * FROM groupe";
return $dbh->query($sql);

//$dbh= NULL;

}
}//fin class
?>
voila la je seche
A+

Posté : 19 mai 2008, 13:28
par Hywan
Hey :),

Désolé pour la réponse tardive.
Les variables de classes ne se déclarent pas dans une méthode mais à l'extérieur des méthodes.
Écrit plutôt :
<?php

class test_pdo {

    /**
     * Tes variables de classe.
     */
    private $user = null;
    private $pwd  = null;
    private ...;

    /**
     * Tes méthodes.
     */
    public function __construct ( $user = null, $pwd = null ... ) {

        $this->user = $user;
        $this->pwd  = $pwd;
        // etc.
        // Le mieux étant d'utiliser des setters et getters bien évidemment.
    }

    public function test ( ) {

        // ton code.
    }
}
Je te conseille d'apprendre l'objet car tu ne t'y prends pas de la bonne façon et que tes connaissances dans le domaine ont l'air limité. Travaille sur des choses plus simple que PDO. Et sache qu'il ne faut pas faire de l'objet pour faire de l'objet : il faut en avoir le besoin …

MERCI

Posté : 22 mai 2008, 21:20
par bruno.rotrou
merci A+
j'ai du travail :wink: