Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
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 21/09/2007, 12h05   #1
Membre du Club
 
Inscription : mars 2003
Messages : 37
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 37
Points : 62
Points : 62
Par défaut Oracle : exécution et retour vide (anormal)

Bonjour,
je fais face à un mystère pour le moins surprenant.

Dans l'application sur laquelle je travaille actuellement, on se connecte sur une base Oracle 10g. Tout semble fonctionner normalement sauf pour une requête. On utilise PDO et des requêtes préparées. Pour cette seule requête, le retour est vide.

Pour vérifier, j'ai exécuté un débuggage pas-à-pas, récupéré le libellé de la requête générée, requête que j'ai exécuté en direct dans un client Oracle. Là, pas de problème, j'obtiens bien la liste des résultats attendus. Mais l'exécution via PDO ne retourne rien du tout.

J'ai fait afficher un $stmt->errorInfo() : aucune erreur n'est retournée. Comme dans le bureau on a pas tous des mises à jour similaires (certains en PHP 5.2.2, d'autres en 5.2.3 et moi en 5.2.4), étant le seul à ne pouvoir obtenir les données, j'ai remis en place un PHP 5.2.3. Le résultat est strictement le même, je n'ai toujours pas les résultats attendus. J'ai vérifié mes pilotes, dll et autres possibilités de configuration sans succès.

Je cherche une piste de solution à explorer parce que là, j'arrive à bout de ressources... et c'est d'autant plus surprenant que le reste de la page avec les données d'autres requêtes s'affichent sans le moindre problème, et encore une fois il n'y a que sur mon poste que ça bafouille. Détail important, j'utilise exactement le même code que les autres, mis à jour via SVN. Plus grave : un collègue se connectant avec mon compte sur sa machine obtient lui les résultats normaux...
Cyrano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 09h40   #2
Membre du Club
 
Inscription : mars 2003
Messages : 37
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 37
Points : 62
Points : 62
Petit élément pour peut-être avancer un peu.
Je me suis livré à quelques expériences et il semble que le problème vienne de PDO. En pas-à-pas, j'ai récupéré la requête générée qui, après quelques ajouts pour tester, ressemble à ceci :
Code :
1
2
3
4
5
6
7
SELECT *
FROM MA_TABLE
WHERE 1=1
  AND FK_ID = 121
  AND to_date(MACOLONNE_DATE, 'dd/mm/yy') > to_date('25/09/07', 'dd/mm/yy')
  AND to_date(MACOLONNE_DATE, 'dd/mm/yy') < to_date('25/10/07', 'dd/mm/yy')
ORDER BY MACOLONNE_DATE
Lors d'une exécution directe, j'obtiens bien la liste des dates attendues. Mais avec un $stmt->execute(), je lève une exception dont voici le début :
Citation:
Erreur de débogage: C:\www\auchandirect_project\framework\dataObject\slotdate.php ligne 245 - Uncaught exception 'PDOException'
with message '
SQLSTATE[HY000]:
General error: 1847
OCIStmtExecute: ORA-01847:
le jour du mois doit être compris entre 1 et le dernier jour du mois
...
Je ne rêve pourtant pas, la donnée envoyée est bonne. Donc PDO_OCI doit traiter la requête de manière inattendue et Oracle ne reçoit pas la chaine que j'envoie.

Une piste de recherche serait bienvenue si quelqu'un a une idée...
Cyrano 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 03h58.


 
 
 
 
Partenaires

Hébergement Web