Connexion POO
Fermé
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
5 nov. 2014 à 12:33
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 6 nov. 2014 à 06:26
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 6 nov. 2014 à 06:26
A voir également:
- Connexion POO
- Gmail connexion - Guide
- Hotmail connexion - Guide
- Facebook connexion - Guide
- Connexion chromecast - Guide
- Gps sans connexion - Guide
5 réponses
Anth0x
Messages postés
2736
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
20 avril 2016
967
Modifié par Anth0x le 5/11/2014 à 12:47
Modifié par Anth0x le 5/11/2014 à 12:47
Salut,
C'est pas comme ça qu'on fait, et on déclare pas deux page php dans la même page !
D'ailleurs la POO n'est pas propre à PHP, tu confonds avec PDO, la POO s'applique à un ensemble de language qui est orientée objet.
Voila une déclaration de connexion en PDO avec déclaration d'erreur au besoin :
Et pour fermer la connexion tu ajoute en fin de page de t'es requete un simple "null", comme ceci :
Je te conseil vivement d'aller voir le maneul PHP et de connaitre l'utilité et la méthodologie de l'orientée objet, et après tu ira voir l'utilité d'un framework, car ici c'est que du "brut" ^^
C'est pas comme ça qu'on fait, et on déclare pas deux page php dans la même page !
D'ailleurs la POO n'est pas propre à PHP, tu confonds avec PDO, la POO s'applique à un ensemble de language qui est orientée objet.
Voila une déclaration de connexion en PDO avec déclaration d'erreur au besoin :
<?php try { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "Erreur !: " . $e->getMessage() . "<br/>"; die(); } ?>
Et pour fermer la connexion tu ajoute en fin de page de t'es requete un simple "null", comme ceci :
$dbh = null;
Je te conseil vivement d'aller voir le maneul PHP et de connaitre l'utilité et la méthodologie de l'orientée objet, et après tu ira voir l'utilité d'un framework, car ici c'est que du "brut" ^^
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
5 nov. 2014 à 12:53
5 nov. 2014 à 12:53
Bonjour
Je me suis mal expliqué chacune des 2 class sont dans deux pages différentes en fait.
Je me suis mal expliqué chacune des 2 class sont dans deux pages différentes en fait.
Anth0x
Messages postés
2736
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
20 avril 2016
967
Modifié par Anth0x le 5/11/2014 à 14:08
Modifié par Anth0x le 5/11/2014 à 14:08
Ok, dans tout les cas, ce que je t'ai mit est le mieux adapté, même si t'es codes sont censé fonctionner ça ne respecte pas les normes.
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié par Pitet le 5/11/2014 à 16:21
Modifié par Pitet le 5/11/2014 à 16:21
Salut,
Si tu souhaites utiliser une classe qui étend PDO, il faut que celle-ci te retourne l'instance PDO pour pouvoir utiliser les méthodes query, prepare, etc sur cette instance.
Souvent on utilise également le pattern singleton pour ne récupérer qu'une seule instance de PDO à chaque appel de la classe (pour ne faire la connexion qu'une seule fois).
Tu peux trouver un exemple ici : https://apprendre-php.com/tutoriels/tutoriel-47-classe-singleton-d-accs-aux-sgbd-intgrant-pdo.html
Bonne journée
Si tu souhaites utiliser une classe qui étend PDO, il faut que celle-ci te retourne l'instance PDO pour pouvoir utiliser les méthodes query, prepare, etc sur cette instance.
Souvent on utilise également le pattern singleton pour ne récupérer qu'une seule instance de PDO à chaque appel de la classe (pour ne faire la connexion qu'une seule fois).
Tu peux trouver un exemple ici : https://apprendre-php.com/tutoriels/tutoriel-47-classe-singleton-d-accs-aux-sgbd-intgrant-pdo.html
Bonne journée
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
5 nov. 2014 à 20:13
5 nov. 2014 à 20:13
Bonjour
Je voudrais vous demander si cette connexion pour ma BDD serait-elle bien adaptée.
Merci de votre avis.
Je voudrais vous demander si cette connexion pour ma BDD serait-elle bien adaptée.
Merci de votre avis.
<?php class SPDO { private $PDOInstance = null; private static $instance = null; const DEFAULT_SQL_USER = 'root'; const DEFAULT_SQL_HOST = 'localhost'; const DEFAULT_SQL_PASS = ''; const DEFAULT_SQL_DTB = 'monsite'; private function __construct() { $this->PDOInstance = new PDO('mysql:dbname='.self::DEFAULT_SQL_DTB.';host='.self::DEFAULT_SQL_HOST,self::DEFAULT_SQL_USER ,self::DEFAULT_SQL_PASS); } public static function getInstance() { if(is_null(self::$instance)) { self::$instance = new SPDO(); } return self::$instance; } public function query($query) { return $this->PDOInstance->query($query); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
Modifié par papyclic le 6/11/2014 à 06:26
Modifié par papyclic le 6/11/2014 à 06:26
Bonjour
Alors voilà j'ai trouvé pour une connexion à ma BDD cette class.
Pour moi elle est très compréhensible dites-moi si je peux l'utiliser telle quelle s'ils vous plait.
En vous remerciant
Alors voilà j'ai trouvé pour une connexion à ma BDD cette class.
Pour moi elle est très compréhensible dites-moi si je peux l'utiliser telle quelle s'ils vous plait.
En vous remerciant
class connexion { private static $instance; private $type = "mysql"; private $host = "localhost"; private $dbname = "monsite"; private $username = "root"; private $password = ''; private $dbh; /*** Lance la connexion à la base de donnée en le mettant * dans un objet PDO qui est stocké dans la variable $dbh * @access private */ private function __construct() { try { $this->dbh = new PDO ( $this->type.':host='.$this->host.'; dbname='.$this->dbname, $this->username, $this->password, array(PDO::ATTR_PERSISTENT => true) ); $req = "SET NAMES UTF8"; $result = $this->dbh->prepare($req); $result->execute(); } catch(PDOException $e) { echo "<div class='error'>Erreur !: ".$e->getMessage()."</div>"; die(); } } /*** Regarde si un objet connexion a déjà été instancier, * si c'est le cas alors il retourne l'objet déjà existant * sinon il en créer un autre. * @return $instance */ public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self; } return self::$instance; } /*** Permet de récuprer l'objet PDO permettant de manipuler la base de donnée * @return $dbh */ public function getDbh() { return $this->dbh; } } ?>