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 de connexion PDO


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut classe de connexion PDO
    Bonjour à tous,

    Je suis en train de découvrir PDO. Je veux l'utiliser pour une application web, je la développe en php objet et j'ai une base de donnée relationnelle derrière tout ça.

    Là j'en suis à me créer ma classe de connexion, enfin je pense que c'est la meilleure chose à faire. Le truc c'est que je cherche un peu partout sur le web des exemples de classe de connexion pdo mais je ne trouve rien de concluant, soit ce sont des choses trop complexes soit des bout de codes ne fonctionnant pas postés par des utilisateurs attendant des aides mais ne les recevant pas forcément.

    Je ne pense pas qu'une classe de connexion soit dur à faire mais ayant surtout fait de la programmation objet en java et C# sans base de données ou des bases de données sans parties clientes je me retrouve bien bloquée dans le but de lier les deux. Si quelqu'un a un lien qui m'aiderait à élaborer ma classe de connexion je lui en serait grès.

    Enfin en gros là je suis complétement perdu

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ne t'inquiétes pas, si tu connais PHP et Mysql tu franchiras lz pas trés vite,

    1) matérielement surement ton serveur gére PDO, par contre en local il te suffit d'éditer PHP.INI et c'est tout bon ! (bien sur tu arrétes et redémarres ton wamp ou easyphp

    2) voici tout bétement un exemple concret (qui marche) a partir de cela tu pourras aller plus loin
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
    <title>xxxxxxx</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="style.css" rel="stylesheet" type="text/css" /> 
    </head>
    <body>
    <div id="container">		
    <?php
    // Connexion à la base de données
    try
    {
     $bdd = new PDO('mysql:host=localhost;dbname=jplyne', 'root', '');
    }
    catch(Exception $e) {        die('Erreur : '.$e->getMessage()); }
    $nombreDeMessagesParPage = 10;
    $retour = $bdd->query('SELECT COUNT(*) AS id FROM test');
    $donnees = $retour->fetch();
    $totalDesMessages = $donnees['id'];
    ?> 
    <br /> <br /> 
    <?php
    echo'Il existe <strong> ' . $totalDesMessages . ' </strong> bourses.'; ?>	
    <?php
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
      echo '<a href="pdo.php?page=' . $i . '">' . $i . '</a> ';
    }
     
    if (isset($_GET['page']))
    	{$page = intval($_GET['page']);}
        else 	{ $page = 1;}
    ?>
    <table>
    <h1> collection 2009</h1>
       <thead>
       <tr>
       <th class="produit">Produit</th>
       <th class="mdp">mdp</th>
       <th class="prix">Prix</th>
       </tr>
     
       </thead>
     
    <?php
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     $reponse = $bdd->query('SELECT pseudo, mdp FROM test ORDER BY id  LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
     
     
    while ($donnees = $reponse->fetch())
    {
    ?>
     <tr> 
       <td><strong><a href="detailb2009.php?id=<?php echo htmlspecialchars($donnees['id']); ?>"><?php echo htmlspecialchars($donnees['pseudo']); ?></a></td>
    </strong>
    <td><?php echo $donnees['mdp'];?><br/></td></tr>
    <?php
    }
    $reponse->closeCursor();
    ?>
    </table>
    </div>
    </body>
    </html>

  3. #3
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    merci d'avoir répondu si vite.

    Ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
    {
     $bdd = new PDO('mysql:host=localhost;dbname=jplyne', 'root', '');
    }
    catch(Exception $e) {        die('Erreur : '.$e->getMessage()); }
    Je le comprend très bien, ce sera ensuite à partir du $bdd que je pourrais appliquer les méthodes venant de PDO.

    Ce qu'il y a c'est que je m'acharne à me créer une classe pour faire ça, d'une part pour que se soit plus propre, d'une autre part pour pouvoir y appliquer un singleton.

    Mais voilà depuis une semaine que je planche dessus sérieusement (1 ou 2 mois que je m'y intéresse) je reste bloqué sur mon bloc note pour faire cette maudite classe.

    pour le moment j'ai fait ça, je vais pas tarder à la tester

    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
    <?php
    Class Connexion
    {
    	private static $instance;
    	private $linkToDB;
    	private $hostname;
    	private $login=;
    	private $passWord;
     
    	private function __construct()
    	{
    		this->hostname="mysql:host=localhost;dbname=project";
    		this->login="root";
    		this->password="";
    	}
     
    	public static function getInstanceConnection()
    	{
            if(null === self::$instance)
    		{
    			try
    			{
    				self::$instance = new PDO($hostname, $login, $password);
    			}
    			catch (PDOException $exce)
    			{
    				die("Erreur de connexion : " . $exce->getMessage() );
    			}
            }
            return self::$instance;
        }
    }
    ?>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas encore assez avancée sur cette logique,
    j' ais largement commencée, mais c'est long pour dominer cela comme MySql par exemple.

    Je repasserais voir si tu reçois de l'aide ça m'intéresse
    Dernière modification par Deepin ; 26/07/2011 à 09h17.

  5. #5
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    La je teste et j'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in C:\wamp\www\Glyndwiz\connection.php  on line 12
    ça correspond à cette ligne, je trouve ça très bizarre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private function __construct()
    	{
    		this->hostname="mysql:host=localhost;dbname=project";
    		this->login="root";
    		this->password="";
    	}
    Donc si quelqu'un s'y connaissant passe par là

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    des "$" devant tes "this" !

    Quant à "pseudo singletonner" PDO... Mouais, c'est à la mode mais est ce que ça vaut vraiment le coup de se prendre le chou pour ça ?

    Si tu dois utiliser des objets s'appuyant sur PDO pour les accès DB, il existe des méthodes plus simples et plus naturelles pour faire les choses.

Discussions similaires

  1. Class de connexion PDO
    Par steven79 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/08/2011, 16h06
  2. Réponses: 4
    Dernier message: 16/08/2011, 13h19
  3. [PDO] [PDO] classe de connexion et d'execution
    Par Madfrix dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/05/2010, 11h26
  4. [MySQL] Classe database + connexion multiple + principe mal compris
    Par Rodrigue dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/08/2006, 14h06
  5. Petit souci JSP et class de connexion a BdD
    Par LeXo dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 07/06/2006, 00h57

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