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 :

execute retourne toujours 0 [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Par défaut execute retourne toujours 0
    Bonjour,

    voici mon code :
    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
    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.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Par défaut
    en activant gestion des erreurs pour PDO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $queryMoyen->bindValue(1, $i, PDO::PARAM_INT);
    $queryMoyen->bindValue(2, ($i+6), PDO::PARAM_INT);
    $queryMoyen->execute();

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le bug est toujours ouvert sur php.net
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT]fonction contains retourne toujours false
    Par wildmary dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 01/08/2007, 11h22
  2. 1 site, 2urls, on retourne toujours la même url
    Par c4cf6 dans le forum Apache
    Réponses: 1
    Dernier message: 29/06/2007, 17h02
  3. fonction retournant toujours 0.000 ?
    Par _SamSoft_ dans le forum C
    Réponses: 49
    Dernier message: 22/02/2007, 20h52
  4. [sockets] gethostbyname retourne toujours la même chose
    Par Strab dans le forum Développement
    Réponses: 3
    Dernier message: 15/09/2006, 10h24
  5. Réponses: 2
    Dernier message: 30/03/2006, 16h18

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