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 :

PDO et clause LIMIT


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut PDO et clause LIMIT
    salut
    j'ai un probleme avec les requetes preparé et les clauses limits
    apparement ceci provoque un erreur de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ID_VERSION,NOM_VERSION,DATE_REALISATION from E_VERSION where ID_MODULE = ? order by DATE_REALISATION DESC LIMIT 0 , ?
    il faut utiliser les surseur scrollable avec fetch?, si oui comment(j'ai pas comprios la doc )

    merci

  2. #2
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    pour t'aider il me faudrait un peu plus de code.
    Au moins ton prepare et tes bind.
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut

    donc
    'SELECT * FROM E_ACTIONFILTER LIMIT ?'
    ne fonctionne pas
    ceci oui
    'SELECT * FROM E_ACTIONFILTER LIMIT 10'
    j'ai regarder du coté des curseurs scrollables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $requete = 'SELECT * FROM E_ACTIONFILTER';
    $sth = $doa->prepare($requete);
    //$sth->bindParam(':id',$id);
    echo var_dump($sth);
    $sth->execute();
     
    do {
        echo var_dump($sth->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)).'<br/>';
        $i++;
    }while($i < 10)
    existe t-il ine uatre methode
    merci

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Je ne vois pas pourquoi sa ne fonctionnerai pas :s

    Ci joint un exemple fonctionnel ou je bind les valeurs de la clause limit, entre autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      $sql = "SELECT  id As Id , idrubrique As idRubrique , titre As Titre , texte_court As Texte , date_poste As Date
        FROM  billets ";
    $sql .= " WHERE idrubrique = :idrubrique ";
    $sql .= " ORDER BY :OrderBy ";
    $sql .= " :OrderTri ";
    $sql .= " LIMIT :LimitStart , :LimitEnd";
     
      $Stat = parent::$pConnection->prepare($sql);
     
    $Stat->bindValue(':idrubrique', $this->pRubrique->Id );
    $Stat->bindValue(':OrderBy', $OrderCol );
    $Stat->bindValue(':OrderTri', $OrderTri );
    $Stat->bindValue(':LimitStart', $LimitStart, PDO::PARAM_INT );
    $Stat->bindValue(':LimitEnd', $LimitEnd, PDO::PARAM_INT );
    Sinon, rien ne t'empeche de le faire comme avec les funcs mysql*.
    Cad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql= "SELECT toto FROM T WHERE id = :id LIMIT ".intval($start).",".intval($end);
    bbye

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    je fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $requete = "SELECT * FROM E_ACTIONFILTER LIMIT ?, ?";
    $sth = $doa->prepare($requete, array(10,  20));
    echo var_dump($doa->errorInfo());
    echo var_dump($sth->errorInfo());
    et le mesasge d'erreur declenché par l'objet pdo et non pdostatement
    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 '?, ?' at line 1
    egale avec les parametres nommés

    par curiosité tu a quelle version de pdo

    http://bugs.php.net/bug.php?id=35801

  6. #6
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Pour la version de PDO, je n'en sais rien. Je n'ai pas trouvé ou lire cela. Tout ce que je sais, c'est que c'est la version fournit en standard avec php 5.1.1.

    As tu essayé en bindant la valeur avec la constante PDO:: PARAM_INT ??

    Autrement j'aime la réponse du support :
    [25 Dec 2005 8:34pm UTC] iliaa@php.net
    Thank you for taking the time to write to us, but this is nota bug. Please double-check the documentation available athttp://www.php.net/manual/ and the instructions on how to reporta bug at http://bugs.php.net/how-to-report.php

    Limit statements cannot be part of prepared statements.
    Je n'ai jamais vu de telle information sur php.net...

    bbye

Discussions similaires

  1. Erreur, lors de variables dans la clause LIMIT
    Par ToxiZz dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/11/2006, 19h32
  2. La clause LIMIT me renvoie 20 résultats
    Par dafalri dans le forum Requêtes
    Réponses: 6
    Dernier message: 31/08/2006, 15h51
  3. [ODBC] Problème d'utilisation de la clause LIMIT
    Par Thierry8 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/10/2005, 09h55
  4. Variable dans la clause LIMIT
    Par oxa dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/07/2005, 15h12
  5. clause limit
    Par attavus dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/04/2005, 15h05

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