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 05/05/2006, 16h40   #1
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
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 :
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
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 17h52   #2
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
pour t'aider il me faudrait un peu plus de code.
Au moins ton prepare et tes bind.
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 10h06   #3
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
salut

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

Code :
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
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h27   #4
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
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 :
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 :
1
2
 
$sql= "SELECT toto FROM T WHERE id = :id LIMIT ".intval($start).",".intval($end);
bbye
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h39   #5
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
je fais ceci
Code :
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
Citation:
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
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 18h33   #6
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
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 :
Citation:
[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
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h44.


 
 
 
 
Partenaires

Hébergement Web