webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 2009
-
27 avril 2010 à 09:23
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 2011
-
18 mars 2011 à 20:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 20111 18 mars 2011 à 20:53
Je sais pas, il faudrait poster l'erreur dans la section forum. Moi je n'utilise pas EasyPHP, je préfère Wampserver qui pose moins de problème.
zouax
Messages postés9Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention20 janvier 2007 16 mars 2011 à 10:27
j'ai installé la dernière version d'easyphp et le message était :
Warning: PDO::__construct() [pdo.--construct]: [2002] Aucune connexion n'a pu ?tre ?tablie car l'ordinateur cible l'a (trying to connect via tcp://localhost:3306) in C:\Program Files (x86)\EasyPHP-5.3.5.0\www\...\index.php on line 20
echec connexion
puis apres ajout du $e->getMessage(); echo($e); die("echec connexion
"); le message ajouté est :
exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Aucune connexion n'a pu ?tre ?tablie car l'ordinateur cible l'a express?ment refus'e. ' in C:\Program Files (x86)\EasyPHP-5.3.5.0\www\a_x_i_b_l_e\phpPager\modeleIntermediaire\index.php:20 Stack trace: #0 C:\Program Files (x86)\EasyPHP-5.3.5.0\www\a_x_i_b_l_e\phpPager\modeleIntermediaire\index.php(20): PDO->__construct('mysql:host=loca...', 'root', '') #1 {main}echec connexion
avec :
$bdd = new PDO('mysql:host='.$host.';dbname='.$db, $login, $pass);
merci de votre aide
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 20111 15 mars 2011 à 23:27
Problème de connexion à la base de données, Faire un $e->getMessage() dans le bloc catch et vérifier les identifiants dans connexion.php
zouax
Messages postés9Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention20 janvier 2007 15 mars 2011 à 10:34
bonjour,
cette source est excellente, mais hélas, je n'arrive pas à trouver pourquoi j'ai un "echec connexion" en local avec easyphp5.3.1.0...
j'ai tenté de changer le port 3306 en 8888 ou 80 ou même le supprimer
$bdd = new PDO('mysql:host='.$host.';dbname='.$db.';port=3306', $login, $pass);
un coup de main serait bienvenue, j'aimerais devenir un vrai débutant svp
merci
mahmoudimohamed
Messages postés1Date d'inscriptionjeudi 13 mars 2008StatutMembreDernière intervention 7 mai 2010 7 mai 2010 à 12:50
Bonjour,
Ta source est vraiment intéressante, bien faite. Mon besoin est de paginer ma page en trois parties. Comment peux je l'adapter pour faire ça. Merci pour la réponse.
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 20111 4 mai 2010 à 15:05
Cela veut dire que tu passes null à la méthode setPdo(); et pas un objet pdo. soit tu as fait une erreur de programmation ou soit tu n'a pas activé PDO. Je ne connais pas spécialement EasyPhp. Il faut déjà activer l'extension pdo correspondant à ta base de données dans php.ini
ex : extension=php_pdo_mysql.dll pour mysql
cs_dfs
Messages postés4Date d'inscriptiondimanche 22 mai 2005StatutMembreDernière intervention23 juin 2009 4 mai 2010 à 13:40
bonjour a tous
j'essaie d debute avec php et cette erreur me survient lors de ce script quelqu'un peut m'aider
//---------------------------------
Catchable fatal error: Argument 1 passed to PagerSql::setPdo() must be an instance of PDO, null given, called in C:\EasyPHP\www\exemplePager\pager\PagerSql.class.php on line 19 and defined in C:\EasyPHP\www\exemplePager\pager\PagerSql.class.php on line 59
bj33
Messages postés145Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention 1 mai 2012 3 mai 2010 à 17:22
salut
<< webdeb
Non, le constructeur parent doit être explicitement appellé dans la classe fille si la classe mère définie un constructeur. c'est bien spécifié içi :
Pour une première, chapeau! çà remonte le niveau débutant. Merci pour eux.
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 20111 3 mai 2010 à 10:14
Salut, si le lien fonctionne mais il faut enlever l'espace 'exemplePage r'. j'ai tout essayé mais cette espace est toujours rajouté automatiquement dans la description.
cs_mouloudia16
Messages postés7Date d'inscriptionjeudi 31 janvier 2008StatutMembreDernière intervention 3 mai 2010 3 mai 2010 à 10:07
Bonjour GENETAPT151,
Le lien ne fonctionne pas.
Bon courage.
Cordialement
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 20111 28 avril 2010 à 19:13
Merci d'avoir répondu.
Effectivement, la classe PagerSql n'est pas très bien implémentée. Je vais passer l'objet pdo en paramètre pour abstraire la partie connexion à la base de données.
Passer des paramètres par défaut, j'y avais pas pensé. C'est un truc que je n’utilise jamais d'habitude. En fait, le problème avec PHP est qu'on ne peut pas définir plusieurs méthodes de même nom de prototype différent comme en java, c++.
Et enfin je ne vois pas l'intérêt d'avoir recours au mot-clé protected plutôt que private. ça sert à rien à part de permettre de faire n'importe quoi dans les classes filles et entrainer des erreurs.
Si on veut accéder aux attributs, il y a les setters et getters pour cela.
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 27 avril 2010 à 09:23
Hello,
Ta source est plutôt bien faite, bravo. Au niveau améliorations et simplification tu peux retirer le __construct() ne contenant qu'un appel au constructeur parent. Par défaut, PHP appel le constructeur parent donc on peut se passer de réimplémenter le constructeur si c'est uniquement pour appeler celui du parent. D'autre part, tu devrais retirer les commentaires de séparation de tes méthodes. Ils ne servent à rien si ce n'est d'alourdir la lecture du code.
Je te conseille plutôt d'avoir recours au mot-clé protected plutôt que private pour faciliter les héritages de tes classes. Dans tes constructeurs, il serait judicieux de passer au moins paramètre (obligatoire ou facultatifà : le nombre d'éléments par page:
public function __construct($nbByPage = 10)
{
$this->nbByPage = (int) $nbByPage;
}
Enfin pour le pager SQL, ton objet PDO je ne devrait pas être instancié directement dans ta méthode mais plutôt passé par dépendance au constructeur par exemple. Ca te permettra deux choses :
* Pouvoir réutiliser un objet PDO existant
* Faciliter les tests unitaires de tes classes en "mockant (simulant)" l'objet PDO avec un objet qui se comporte comme lui sans faire les requêtes SQL sur la base.
Ce qui donne :
class PagerSql extends Pager
{
protected $pdo, $table;
public function __construct(PDO $pdo, $table null, $nbByPage 10)
{
parent::__construct($nbByPage);
18 mars 2011 à 20:53
16 mars 2011 à 10:27
Warning: PDO::__construct() [pdo.--construct]: [2002] Aucune connexion n'a pu ?tre ?tablie car l'ordinateur cible l'a (trying to connect via tcp://localhost:3306) in C:\Program Files (x86)\EasyPHP-5.3.5.0\www\...\index.php on line 20
echec connexion
puis apres ajout du $e->getMessage(); echo($e); die("echec connexion
"); le message ajouté est :
exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Aucune connexion n'a pu ?tre ?tablie car l'ordinateur cible l'a express?ment refus'e. ' in C:\Program Files (x86)\EasyPHP-5.3.5.0\www\a_x_i_b_l_e\phpPager\modeleIntermediaire\index.php:20 Stack trace: #0 C:\Program Files (x86)\EasyPHP-5.3.5.0\www\a_x_i_b_l_e\phpPager\modeleIntermediaire\index.php(20): PDO->__construct('mysql:host=loca...', 'root', '') #1 {main}echec connexion
avec :
$bdd = new PDO('mysql:host='.$host.';dbname='.$db, $login, $pass);
merci de votre aide
15 mars 2011 à 23:27
15 mars 2011 à 10:34
cette source est excellente, mais hélas, je n'arrive pas à trouver pourquoi j'ai un "echec connexion" en local avec easyphp5.3.1.0...
j'ai tenté de changer le port 3306 en 8888 ou 80 ou même le supprimer
un coup de main serait bienvenue, j'aimerais devenir un vrai débutant svp
merci
7 mai 2010 à 12:50
Ta source est vraiment intéressante, bien faite. Mon besoin est de paginer ma page en trois parties. Comment peux je l'adapter pour faire ça. Merci pour la réponse.
4 mai 2010 à 15:05
ex : extension=php_pdo_mysql.dll pour mysql
4 mai 2010 à 13:40
j'essaie d debute avec php et cette erreur me survient lors de ce script quelqu'un peut m'aider
//---------------------------------
Catchable fatal error: Argument 1 passed to PagerSql::setPdo() must be an instance of PDO, null given, called in C:\EasyPHP\www\exemplePager\pager\PagerSql.class.php on line 19 and defined in C:\EasyPHP\www\exemplePager\pager\PagerSql.class.php on line 59
3 mai 2010 à 17:22
<< webdeb
Non, le constructeur parent doit être explicitement appellé dans la classe fille si la classe mère définie un constructeur. c'est bien spécifié içi :
http://fr2.php.net/manual/fr/language.oop5.decon.php
<< GENETAPT151
Pour une première, chapeau! çà remonte le niveau débutant. Merci pour eux.
3 mai 2010 à 10:14
lien : http://guillaume-genet.100webspace.net/exemplePager/index.php
3 mai 2010 à 10:07
Le lien ne fonctionne pas.
Bon courage.
Cordialement
28 avril 2010 à 19:13
Effectivement, la classe PagerSql n'est pas très bien implémentée. Je vais passer l'objet pdo en paramètre pour abstraire la partie connexion à la base de données.
Passer des paramètres par défaut, j'y avais pas pensé. C'est un truc que je n’utilise jamais d'habitude. En fait, le problème avec PHP est qu'on ne peut pas définir plusieurs méthodes de même nom de prototype différent comme en java, c++.
Et enfin je ne vois pas l'intérêt d'avoir recours au mot-clé protected plutôt que private. ça sert à rien à part de permettre de faire n'importe quoi dans les classes filles et entrainer des erreurs.
Si on veut accéder aux attributs, il y a les setters et getters pour cela.
27 avril 2010 à 09:23
Ta source est plutôt bien faite, bravo. Au niveau améliorations et simplification tu peux retirer le __construct() ne contenant qu'un appel au constructeur parent. Par défaut, PHP appel le constructeur parent donc on peut se passer de réimplémenter le constructeur si c'est uniquement pour appeler celui du parent. D'autre part, tu devrais retirer les commentaires de séparation de tes méthodes. Ils ne servent à rien si ce n'est d'alourdir la lecture du code.
Je te conseille plutôt d'avoir recours au mot-clé protected plutôt que private pour faciliter les héritages de tes classes. Dans tes constructeurs, il serait judicieux de passer au moins paramètre (obligatoire ou facultatifà : le nombre d'éléments par page:
public function __construct($nbByPage = 10)
{
$this->nbByPage = (int) $nbByPage;
}
Enfin pour le pager SQL, ton objet PDO je ne devrait pas être instancié directement dans ta méthode mais plutôt passé par dépendance au constructeur par exemple. Ca te permettra deux choses :
* Pouvoir réutiliser un objet PDO existant
* Faciliter les tests unitaires de tes classes en "mockant (simulant)" l'objet PDO avec un objet qui se comporte comme lui sans faire les requêtes SQL sur la base.
Ce qui donne :
class PagerSql extends Pager
{
protected $pdo, $table;
public function __construct(PDO $pdo, $table null, $nbByPage 10)
{
parent::__construct($nbByPage);
$this->pdo = $pdo;
$this->table = $table;
}
}
Je te laisse améliorer ton code en conséquence ;)
Hugo.