Je débute en PHP5 et je galère pour traiter les résultats de mes requêtes SQL.
Par exemple, j'ai une classe qui me permet de récupérer un user à partir d'une requête select:
<?php
//cette classe implemente le contrat d'interface IUserDAO
require_once("connexion/ConnexionPDO.php");
require_once("connexion/CloseConnBD.php");
class UserDAO implements IUserDAO
{
public function readUser(/*String*/ $login, /*String*/ $password)
{
$pdo = ConnexionPDO::getInstance();
$sql = "SELECT * FROM user WHERE pseudo= ? AND password= ?";
$st = $pdo->getDBH()->prepare($sql);
$st->execute(array($login,$password)); //return FALSE ou return un objet PDOStatement =>$st [en fait execute le prepare()]
$resultat = $st->fetchAll();//à changer...
//$resultat = $pdo->getDBH()->query($sql);
CloseConnBD::closeConnection($pdo->getDBH());
return $resultat;
}
}
?>
Mon problème c'est que je ne sais pas utiliser les méthodes comme fetch() ou fetchAll() (voir fetchObject()).Ce que je voudrais faire, vu qu'on est en POO, c'est de stocker mon résultat de requête dans une instance de ma classe UserDTO :
<?php
class UserDTO
{
private /*int*/ $idUser;
private /*String*/ $pseudo;
private /*String*/ $password;
private /*int*/ $statut;
//Constucteur NOTE : peut y avoir qu'un seul constructeur en PHP5 => si plusieurs faire fonction init
public function __construct(/*int*/ $idUser, /*String*/ $pseudo, /*String*/ $password, /*int*/ $statut)
{
$this->idUser = $idUser;
$this->pseudo = $pseudo;
$this->password = $password;
$this->statut = $statut;
}
/********************************
* Getter and Setter *
********************************/
public /*int*/ function getIdUser()
{
return $this->idUser ;
}
public /*String*/ function getPseudo()
{
return $this->pseudo ;
}
public function setPseudo($pseudo)
{
$this->pseudo = $pseudo;
}
public /*String*/ function getPassword()
{
return $this->password ;
}
public function setPassword($password)
{
$this->password = $password;
}
public /*int*/ function getStatut()
{
return $this->statut ;
}
public function setStatut($statut)
{
$this->statut = $statut;
}
/************************************
* Méthodes alternatives *
************************************/
public /*String*/ function toString()
{
return "id = ".$this->idUser." , pseudo = ".$this->pseudo." , statut = ".$this->statut;
}
}
?>
Mais je ne sais pas comment faire.C'est un gros point bloquant dans l'avancement du codage de mon application (vos vous en doutez je pense).
J'aimerais donc savoir si vous connaissez des méthodes pour le faire (construire un objet UserDTO à partir du résultat de ma requête).
Je précise que je suis à la base dévelloppeur JAVA et que j'ai peut etre une vision non applicable à PHP5.
Merci d'avance.