Bonjour,
voici une partie du code pour acceder à une base de données et recuperer des informations.
$conn = oci_connect("tonlogin", "tonmotdepasse","option:lenomduschema");
$stmt = oci_parse($conn, "SELECT * FROM NOM_TABLE)
oci_execute($stmt);
$nrows_stmt = oci_fetch_all($stmt);
while (ocifetch($stmt))
{
ICI Differentes operations
}
ma question est la suivante :
je veux savoir si je recupere des lignes ou pas, alors j'essaye d'utiliser cette exepression :
"$nrows_stmt = oci_fetch_all($stmt)"
avant le while, mais le probleme c'est que des j'utilise cette expression, j'ai une erreur sur la ligne :
while (ocifetch($stmt))
et voici le message d'erreur :
Warning: ocifetch() [function.ocifetch]: ORA-01002: fetch out of sequence in C:\wamp\www\ecran\base.php on line 193
quand je met pas cette expression : $nrows_stmt = oci_fetch_all($stmt)
tout fonctionne bien.
je ne sais pas comment faire pour savoir si j'ai des données dans la table ou pas
pour info je developpe en PHP
merci de votre aide
Hello,
En fait le problème que tu rencontres est tout à fait normal, puisque lorsque tu fais
et
tu fais deux fois la même chose, grosso modo tu vas lire le résultat de sortie de ta base de données.
Le soucis, c'est que si tu le lis deux fois de suite la sortie pour le même statement, la seconde fois il n'y aura rien à lire, d'ou ton erreur.
La solution à ton problème est donc d'utiliser l'une de ces deux methodes pour lire la sortie de l execution de ton statement :
- oci_fetch avec un while
- oci_fetch_all
Bonne chance,
Niroken