En fait, j'ai exécuté la requête postgres, supposons qu'elle renvoie les 10 lignes. Maintenant, j'ai ce gestionnaire de déclaration ($ sth).perl dbi: fetchrow_arrayref
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
Maintenant, je l'ai tiré par les cheveux les 5 lignes du gestionnaire de l'instruction (STH de $ .Maintenant Je veux revenir $ pointeur de référence STH à la ligne 1ème .....
Que dois-je faire ....?
Merci
Cela fonctionnera-t-il réellement? On m'a dit que pour arrayref la même référence de tableau est utilisée à chaque fois. vous ne pouvez donc pas stocker la référence du tableau et l'utiliser plus tard, car les données qui l'accompagnent sont remplacées. Mais j'essaie de le confirmer. – Jonathon
Juste exécuté un test, et je peux vérifier au moins dans certains cas, vous ne pouvez pas simplement stocker la référence. Comme c'est la même référence à chaque fois. La documentation dit ceci: "Notez que la même référence de tableau est retournée pour chaque extraction, donc ne stockez pas la référence et ne l'utilisez pas après une extraction ultérieure., De plus, les éléments du tableau sont également réutilisés pour chaque ligne, alors faites attention si vous voulez prendre une référence à un élément. " Non, il n'y a rien de mal avec cet exemple exact, juste en le combinant avec le code des affiches d'origine. – Jonathon
Oui, si vous récupérez une seule ligne, vous ne voulez pas stocker cette référence, car elle sera réutilisée lorsque vous récupérerez la suivante. "fetchall" devrait être sûr, cependant. – Thilo