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 18/02/2011, 13h03   #1
Invité régulier
 
Inscription : novembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : novembre 2006
Messages : 33
Points : 9
Points : 9
Par défaut execute retourne toujours 0

Bonjour,

voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require ("params.inc.php");   
 
	$connexion = new PDO('mysql:host='.$hote.';dbname='.$bd,$login,$mdp);	
 
	$citizen=2364939;
	$reqMoy ="select sum(Dxp) as Dxpm, sum(dforce) as Dforcem, sum(drank) as drankm from ( SELECT (ech1.Experience_Points - ech2.Experience_Points) Dxp , (ech1.Skill_Points - ech2.Skill_Points) dforce, (ech1.Rank_Points - ech2.Rank_Points) drank FROM erep_cit_histo ech1, erep_cit_histo ech2 where ech1.cit_id =".$citizen." and ech1.jour = (ech2.jour +1) and ech1.cit_id =ech2.cit_id order by ech1.id desc limit ?, ?) as moyen";
	$queryMoyen=$connexion->prepare($reqMoy);
	$queryMoyen->setFetchMode(PDO::FETCH_OBJ);
 
	$i=0;
	$j=0;
	$xpMoyen=array();
	$nbSemaine=array('j');
 
	while(($queryMoyen->execute(array($i,($i+6)))) && ($citizenRank = $queryMoyen->fetch()) && j<=7)
	{
		print_r( $citizenRank);
		$xpMoyen[]=$citizenRank->Dxpm;
		$j++;
		$nbSemaine[]="Sem -".$j;
		$i+=7;
	}

Le problème c'est que $queryMoyen->execute retourne toujours 0.
j'ai testé la requête avec de valeur fixe y'a pas de souci de ce coté la.
De plus la connexion est bonne aussi .

Pouvez vous m'aider?

d'avance merci.
Pirion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 13h07   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
active la gestion des erreurs pour PDO

il faut aussi binder les valeur pour LIMIT, sinon ca marche pas, d'ailleur t'a aussi une valeur externe qui n'est pas dans la requête préparée, sois tu la mets dedans soit tu fais un pdo::quote dessus
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 13h22   #3
Invité régulier
 
Inscription : novembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : novembre 2006
Messages : 33
Points : 9
Points : 9
en activant gestion des erreurs pour PDO :

Code :
1
2
 
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', '6') as moyen' at line 1 in /homepages/27/d149186910/htdocs/top/graph.php on line 17
il semblerait qu'il ne gère pas bien les variables ajouter dans le execute.

comment puis je specifier que ce sont des integer?
Pirion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 13h27   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
http://fmaz.developpez.com/tutoriels...ndre-pdo/#LV.c
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 13h40   #5
Invité régulier
 
Inscription : novembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : novembre 2006
Messages : 33
Points : 9
Points : 9
merci pour le lien ça ma beaucoup aider.
y a t'il un moyen de ne pas utiliser le bindValue, et de tout mettre dans le exécute?

ma correction :
Code :
1
2
3
4
 
$queryMoyen->bindValue(1, $i, PDO::PARAM_INT);
$queryMoyen->bindValue(2, ($i+6), PDO::PARAM_INT);
$queryMoyen->execute();
Pirion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 13h44   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Le bug est toujours ouvert sur php.net
sabotage 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 09h08.


 
 
 
 
Partenaires

Hébergement Web