Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/02/2007, 17h10   #1
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
Par défaut Pb instanciation $statement avec PDO sous PHP

Salut a tou(te)s !
J'ajoute à ma surprenante collection de bugs incompris celui-ci:
Jai developpe une fonction (declarée dans un fichier .inc) qui utilise une instance de PDO pour recuperer les infos que je souhaiterais afficher plus tard sur ma page.
La fonction c'est:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function extractionInfosHeader() 
{
	set_exception_handler("exceptionHandler");
	$db_2 = new PDO(BDD_CONNECTION, BDD_USER_NAME, BDD_PWD);
 
	$sql = 'SELECT nom_ecran, desc_ecran, page_web, mots_cles, id_parent 
				FROM Screen 
				WHERE page_web = "header"';
 
	$statement = $db_2->prepare($sql);
	$statement->execute();      // << LIGNE QUI POSE LE PROBLEME
	$tabl_result = $statement->fetch();
	$statement->closeCursor();
 
	$_ENV['page_web'] = $tabl_result['page_web'];
	$_ENV['mots_cles'] = $tabl_result['mots_cles'];
	$_ENV['id_parent'] = $tabl_result['id_parent'];
	$db_2=null;
}
Et là c'est le drame: quant je test en local tout marche bien, MAIS quant je l'ai installé sur le serveur distant (de même config que le local), j'ai le message :
Citation:
Fatal error: Call to a member function execute() on a non-object in http://le bon chemin c sur on line 19
Je cherche depuis un moment, sans comprendre pourquoi ce $statement pose problème.

ps: c'est impoli je sais mais c'est une urgence j'ai comme un poids sur mes épaules depuis tout à l'heure. Merci bcp!!
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 17h28   #2
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Doc:

Citation:
If the database server successfully prepares the statement, PDO->prepare() returns a PDOStatement object. If the database server cannot successfully prepare the statement, PDO->prepare() returns FALSE.
ca doit être ça le prob...
Quant à savoir pourquoi il n'arrive pas à préparer...

Tu as faits des var_dump() etc pour en savoir un peu plus ?
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 17h33   #3
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357


Ca pourrait aussi nous aider si tu précises quelle est la ligne 19...
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 17h36   #4
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
resultat des var_dump avant et apres mon petit bout de code:
Citation:
db=
object(PDO)#1 (0) {
}
stmt_avant=
bool(false)
Fatal error: Call to a member function execute() on a non-object in http://lechemin/lib_php_sgbd.inc on line 33
sur ce:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$sql = 'SELECT nom_ecran, desc_ecran, page_web, mots_cles, id_parent 
				FROM Ecran 
				WHERE page_web = "header"';
	// TESTS
	echo 'db=<pre>';
	var_dump($db);
	$statement = $db->prepare($sql);
	// TESTS
	echo 'stmt_avant=<pre>';
	var_dump($statement);
 
	$statement->execute();
@jml94 :
Citation:
// << LIGNE QUI POSE LE PROBLEME
tu veux que je te les numerote toutes
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 17h41   #5
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Non, merci.
Si tu veux me faire un cadeau, je t'envoie mon adresse en MP et tu m'envoie des grosses lunettes, il semblerait que j'en ai besoin.

Le prepare tombe bien en erreur, comme l'avait prédit goodpz.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 18h10   #6
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
Mes chers ami(e)s;
j'ai le regret de vous informer qu'après avoir découvert l'explication du bug de sa fonction (qui n'était d'ailleurs pas totalement de lui), notre bien aimé Tigunn... a mis fin à ses jours.
Il aurait avalé sa souris filaire sans la deconnecter, ce qui lui fut fatal.

Bon je dis mon erreur : la requete SQL qui était fausse (mauvais champs, ...)
Mais c'est pas vrai: vous vous dites. Ah si la honte pouvait tuer je me serais déjà enterré tout seul.

Enfin, afin de pas clore tout de suite mon déhonneur publique (sisi): est-ce quelqu'un peut m'expliquer pourquoi en local cette fonction n'a jamais bronchée (j'avais pas vu qu'il n'y avait pas de retour ok ) alors que sur le serveur aucun message d'erreur n'est retourné a part le "execute() ... non-object...(voir plus haut)" ?
Je pensais qu'en définissant : set_exception_handler("exceptionHandler"); avant la création de l'instance PDO ca permettait d'afficher les msg d'erreurs.
Bon, à force, faut que je me méfie: Je pourrais devenir intelligent.
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 20h45   #7
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par tigunn
Bon, à force, faut que je me méfie: Je pourrais devenir intelligent.
T'inquiètes pas, je croyais que ça m'arriverais aussi, et puis non...
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h14.


 
 
 
 
Partenaires

Hébergement Web