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

PHP & Base de données Discussion :

Classe PDO [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Classe PDO
    J'ai trouvé sur le net un script qui fait usage de classes PDO...
    Je sais ce que c'est mais pour éxécuter ce script, j'ai sans doute besoin d'une librairie.... laquelle ?

    Voici un extrait:

    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
    <?php
    function lire_infos_utilisateur($id_utilisateur) {
    
    	$pdo = PDO2::getInstance();
    
    	$requete = $pdo->prepare("SELECT nom_utilisateur, mot_de_passe, adresse_email, avatar, date_inscription, hash_validation
    		FROM membres
    		WHERE
    		id = :id_utilisateur");
    
    	$requete->bindValue(':id_utilisateur', $id_utilisateur);
    	$requete->execute();
    	
    	if ($result = $requete->fetch(PDO::FETCH_ASSOC)) {
    	
    		$requete->closeCursor();
    		return $result;
    	}
    	return false;
    }
    
    function maj_email_membre($id_utilisateur,$adresse_email) {
    	$pdo = PDO2::getInstance();
    
    	$requete = $pdo->prepare("UPDATE membres SET
    		adresse_email = :adresse_email
    		WHERE
    		id = :id_utilisateur");
    
    	$requete->bindValue(':id_utilisateur', $id_utilisateur);
    	$requete->bindValue(':adresse_email', $adresse_email);
    
    	return $requete->execute();
    }
    Et quand un object dépend de ce PDO, cela à l'air bien + facile de coder ces requêtes....

    Avez-vous une idée ?

    PS; le site en question ne raconte rien à ce sujet

  2. #2
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Je ne connais pas de librairie qui s'appelle PDO2, mais a priori dans ton code elle ne sert qu'à gérer une connexion. Tout le reste (->prepare(), etc) n'est que le fonctionnement normal de PDO.

    Pour remplacer la classe manquante, je dirai qu'elle fait :
    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
    class PDO2 {
    	protected static $_pdoInstance;
     
    	/**
    	 * Connexion
    	 */
    	public static function connect() {
    		$oPDO = new PDO(...);
    		self::$_pdoInstance = $oPDO;
    	}
     
    	/**
    	 * Obtenir l'instance PDO en cours
    	 * @return PDO $object
    	 */
    	public static function getInstance() {
    		return self::$_pdoInstance;
    	}
    }
    Edit: ah oui, pour utiliser PDO tu auras besoin d'activer l'extension correspondante, par exemple pdo_mysql si ton SGBD est MySQL

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Halleck Voir le message
    Je ne connais pas de librairie qui s'appelle PDO2, mais a priori dans ton code elle ne sert qu'à gérer une connexion.
    En fait PDO2 semble être un singleton de PDO (qui ne l'ai pas par défaut).

    Note tout de même que tu n'a pas besoin de ce PDO2 pour te servir de PDO. Comme dis précédemment une extension à activer et c'est partie.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Class PDO quid ?
    Et nien moi, je n'ai pas les classes PDO ...
    Où peut-on les trouver ? Je viens de rentrer je pourrais peut-être faire une recherche google par ex....

    J'ai une autre question Grunk (c'est un très bon chocolat belge.... hum.....

    Pour mon site (pas celui que je reprends...) je me demande si ne ferais pas une classe Main qui contiendrait chaque partie de l'écran (qui serait chacune une sous-classe que j'aurais préalablement traduit en PHP, il y a assez de moulinette sur le WEB pour faire cela) et je serais débarassé de cet HTML qui me pose parfois quelques problèmes...

    Qu'en penses-tu ?

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par ETVigan Voir le message
    Et nien moi, je n'ai pas les classes PDO ...
    Où peut-on les trouver ? Je viens de rentrer je pourrais peut-être faire une recherche google par ex....

    J'ai une autre question Grunk (c'est un très bon chocolat belge.... hum.....

    Pour mon site (pas celui que je reprends...) je me demande si ne ferais pas une classe Main qui contiendrait chaque partie de l'écran (qui serait chacune une sous-classe que j'aurais préalablement traduit en PHP, il y a assez de moulinette sur le WEB pour faire cela) et je serais débarassé de cet HTML qui me pose parfois quelques problèmes...

    Qu'en penses-tu ?
    Tu as juste à activer l'extension , tu n'as pas les fichier php à proprement parlé. C'est une extension php donc le simple fait de décommenter la ligne correspondante dans le .ini te donne accès à la classe PDO.

    Pour ton autre question , je suis pas partisans de ce genre de chose mais si c'est ta façon de voir les chose pourquoi pas.

    Pour moi PHP ne doit pas s'occuper de générer les interfaces (hors moteur de template) , il sert à charger les vue html par exemple (cf frontcontroller , modèle MVC, etc ...)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut PDO
    Grunck, Actuellement, j'ai dans mon PHP.INI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    extension=php_pdo.dll
    ;extension=php_pdo_firebird.dll
    ;extension=php_pdo_mssql.dll
    ;extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_oci8.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    ;extension=php_pdo_sqlite.dll
    Ces nstructions sont commentées.

    Mais en bas en trouve:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [PHP_PDO_MYSQL]
    extension=php_pdo_mysql.dll
    [PHP_PDO_ODBC]
    extension=php_pdo_odbc.dll
    [PHP_PDO_SQLITE]
    extension=php_pdo_sqlite.dll
    Ai-je besoin de tout cela , N'y a t'il pas redondance ?

    Je pense que en toutcas, j'ai besoin de celle que j'ai mis en gras, non ?

    Merci à toi

  7. #7
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    la librairie PDO est incluse dans PHP depuis PHP 5.1.0 :
    http://fr2.php.net/pdo

  8. #8
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Class PDO
    Je suis d'accord, il y a de la doc sur le site PHP.... mais pas le download des classes, ce que je recherche

    Je recherche aussi le php_dbg.dll pour PHP5.3.2, connais-tu ?
    Je souhaite installer le debugger Eclipse !
    Dsl de te demander cela ici mais c'est parfoisnon-aisé de se retrouver dans le dédale des forums.....

    Merci

  9. #9
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Classe PDO
    Merci à toi....

    J'ai décommenté la ligne;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ;    $ET
    ;    ---
    extension=php_pdo.dll
    ;    -------------

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

Discussions similaires

  1. [1.x] Fatal error: Class 'PDO' not found
    Par phpiste dans le forum Symfony
    Réponses: 5
    Dernier message: 14/07/2010, 12h40
  2. activation de la classe pdo chez ovh
    Par sws2008 dans le forum OVH
    Réponses: 2
    Dernier message: 20/04/2009, 21h46
  3. [POO] Utilisation d'une classe pdo perso
    Par artotal dans le forum Langage
    Réponses: 11
    Dernier message: 05/04/2008, 03h47
  4. [PDO] Ne trouve pas la classe pdo
    Par sliderman dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/10/2007, 17h18
  5. [POO] POO pour une classe PDO
    Par nabab dans le forum Langage
    Réponses: 2
    Dernier message: 07/08/2007, 23h58

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