IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PHP POO Debutant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut PHP POO Debutant
    Bonjour , je suis nouveau dans le forum et en POO PHP aussi. bref voilà ma première classe en PHP sa serai bien d'avoir des retours pour savoir si je suis dans le bon chemin merci d'avance
    <?php
    /**
    *
    */
    class Model {

    private $dsn ;
    private $user ;
    private $pass ;

    public function __construct($dsn, $user, $pass){
    $this->dsn = $dsn ;
    $this->user = $user ;
    $this->pass = $pass ;
    try{
    $this->db = new PDO($dsn, $user, $pass);
    $this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(PDOException $e){
    echo 'Erreur : ' . $e->getMessage();
    }
    }

    public function lire(){
    $sql = "SELECT * FROM users";
    $res = $this->db->query($sql);
    while($row = $res->fetchAll(PDO::FETCH_OBJ)){
    return $row ;
    }
    }

    public function ajouter(){
    try{
    $sql = $this->db->prepare("INSERT INTO users (nom, prenom, age, email) VALUE (:nom, :prenom, :age, :email)");
    $sql->bindParam(1, $nom);
    $sql->bindParam(2, $prenom);
    $sql->bindParam(3, $age);
    $sql->bindParam(4, $email);

    $nom = "little";
    $prenom = "john";
    $age = 27;
    $email = "john@gmail.ma";
    $data = array('nom' => 'little','prenom' => 'john','age' => 27,'email' => 'john@gmail.ma');
    $sql->execute($data);

    }catch(PDOException $e){
    echo $e->getMessage();
    }
    }

    public function supprimer($id){
    $sql = "DELETE FROM users WHERE id = {$id}";
    $this->db->exec($sql);

    }

    public function modifier($id){
    try{
    $sql = $this->db->prepare("UPDATE users SET nom = :nom, prenom = :prenom, age = :age, email = :email WHERE id = {$id}");
    $sql->bindParam(1, $nom);
    $sql->bindParam(2, $prenom);
    $sql->bindParam(3, $age);
    $sql->bindParam(4, $email);

    $nom = "Hunter";
    $prenom = "bad";
    $age = 27;
    $email = "bad@gmail.ma";
    $data = array('nom' => 'Hunter','prenom' => 'bad','age' => 27,'email' => 'bad@gmail.ma');
    $sql->execute($data);

    }catch(PDOException $e){
    echo $e->getMessage();
    }
    }

    }

    ?>

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'a quelque petit erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = "SELECT * FROM users";
    $res = $this->db->query($sql);
    while($row = $res->fetchAll(PDO::FETCH_OBJ)){
    return $row ;
    pas besion de faire un while fetchAll te renvoie deja tout


    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
    public function ajouter(){
    try{
    $sql = $this->db->prepare("INSERT INTO users (nom, prenom, age, email) VALUE (:nom, :prenom, :age, :email)");
    $sql->bindParam(1, $nom);
    $sql->bindParam(2, $prenom);
    $sql->bindParam(3, $age);
    $sql->bindParam(4, $email);
     
    $nom = "little";
    $prenom = "john";
    $age = 27;
    $email = "john@gmail.ma";
    $data = array('nom' => 'little','prenom' => 'john','age' => 27,'email' => 'john@gmail.ma');
    $sql->execute($data);
     
    }catch(PDOException $e){
    echo $e->getMessage();
    }
    }
    ton bind sert a rien


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "DELETE FROM users WHERE id = {$id}";
    $this->db->exec($sql);
    la un bind servirai par contre grosse injection en vue ici

    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
    public function modifier($id){
    try{
    $sql = $this->db->prepare("UPDATE users SET nom = :nom, prenom = :prenom, age = :age, email = :email WHERE id = {$id}");
    $sql->bindParam(1, $nom);
    $sql->bindParam(2, $prenom);
    $sql->bindParam(3, $age);
    $sql->bindParam(4, $email);
     
    $nom = "Hunter";
    $prenom = "bad";
    $age = 27;
    $email = "bad@gmail.ma";
    $data = array('nom' => 'Hunter','prenom' => 'bad','age' => 27,'email' => 'bad@gmail.ma');
    $sql->execute($data);
     
    }catch(PDOException $e){
    echo $e->getMessage();
    }
    }
    pareil pour les bind il servent pas, et pareil pour le $id et l'injection

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut plus d'explication svp
    la j comprends pas trop veux-tu bien être plus explicite svp ;

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par k_abdessamad1 Voir le message
    la j comprends pas trop veux-tu bien être plus explicite svp ;
    qu'est ce que t'as pas compris ?

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut le bind
    le truc du bind ou l'employé et ou ne pas l'employé

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par k_abdessamad1 Voir le message
    le truc du bind ou l'employé et ou ne pas l'employé
    quand tu fais ton "execute" en mettant ton array en parametre, il bind automatiquement.
    De plus y'a pas de type au niveau de ton bind tout sortira en type "string"
    Pour avoir une sortie bind(er) il faut utiliser FETCH_BOUND

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] debutant: redirection vers un page php
    Par arnolpourri dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/06/2006, 15h29
  2. [POO] Débutant en POO
    Par iomega dans le forum Langage
    Réponses: 6
    Dernier message: 05/05/2006, 17h01
  3. [PHP-JS] [debutant] php javascript sql
    Par flydragon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/04/2006, 16h07
  4. [PHP-JS] Debutant :Pb de double cote Php /javacript
    Par o_live dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2006, 09h55
  5. [POO] Débutant en POO, class mysql php5
    Par ouafouaf dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2006, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo