|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Membre régulier
![]() Inscription : avril 2003 Messages : 335 ![]() |
Bonjour,
Je suis en train de tester PDO et je ne parviens pas à déplacer le curseur de mon recordset. J'ai pourtant suivi la doc... 1/ La connexion, pas de problème. Code :
Code :
Code :
Code :
http://fr3.php.net/manual/fr/functio...ment-fetch.php Merci. |
||||||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
je n'ai jamais utilisé PDO, mais as tu lu les commentaires utilisateurs de la page de la doc ? et si oui, quelle version de php as tu ?
Edit : apres avoir relu un peu la doc, rien n'indique que ce que tu veux faire est possible. Un "fetch" n'est pas un "seek". Tu indique juste la maniere dont PDO va parser les données avant de te les renvoyer, mais il ne les garde apparament pas en mémoire, c'est tout l'interet du "fetch"
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : avril 2003 Messages : 335 ![]() |
Salut,
Je suis sous PHP Version 5.1.6. C'est possible et assez explicite, il suffit de regarder le passage de paramètres : mixed PDOStatement::fetch ( [int fetch_style [, int cursor_orientation [, int cursor_offset]]] ) cursor_orientation Pour un objet PDOStatement représentant un curseur scrollable, cette valeur détermine quelle ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_ORI_*, et par défaut, vaut PDO::FETCH_ORI_NEXT. Pour demander un curseur scrollable pour votre objet PDOStatement, vous devez définir l'attribut PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL lorsque vous préparez la requête SQL avec la fonction PDO::prepare(). C'est pour cette raison que j'utilise PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL puis PDO::FETCH_ORI_FIRST, tel un "mysql_data_seek". |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
En effet, j'avais lu la doc un peu vite.
Essaye de voir d'ou ca vient en reproduisant l'exemple de la page http://fr3.php.net/manual/fr/functio....php#AEN153477 et en changeant petit a petit les parametres pour voir ce qui pose probleme. La premiere chose a faire est de trapper les exceptions pour voir si PDO te retourne qqchose, ensuite d'utiliser FETCH_NUM au lieu de BOTH, ainsi que d'essayer de spécifier des parametres explicites dans le premier fetch() (ORI_NEXT)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : avril 2003 Messages : 335 ![]() |
Re,
J'avais essayé cet exemple et FETCH_NUM mais sans succès. Il me semble avoir lu que de scroller le curseur sous mysql n'était pas encore possible, c'est sûrement le cas sous postgresql, mais jusqu'à quelle version ? Je teste de suite sous PHP5.2... |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : avril 2003 Messages : 335 ![]() |
Pas mieux
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
aucune idée pour postgres... t'as testé avec un exemple équivalent a celui de la doc ? (en changeant juste la requete)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : avril 2003 Messages : 335 ![]() |
Oui exactement celui que tu as cité plus haut.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com