Odbc et case sensitive

[o.o]REplay Messages postés 385 Statut Membre -  
[o.o]REplay Messages postés 385 Statut Membre -
Bonjour,

j'utilise odbc pour me connecter à une base de donnée sur un serveur "distant".

Tout marche bien, sauf à la réception de mes résultats.
Je m'explique, je voudrai faire celà :

while($array=odbc_fetch_array($result))
{
    echo $array['nomColonne'];
}


celà ne marche pas, sauf si je met en majuscule:
echo $array['NOMCOLONNE']; 


J'ai bien essayé dans ma requête de faire un "select nomcolonne as autrenom", mais même problème: "autrenom" doit être en majuscule, sinon j'obtiens un Notice: Undefined index :(

Merci d'avance pour votre aide :)

(note: mon dsn est bien définit, etc... car j'obtiens bien des résultats de la requête (= )

2 réponses

sandul Messages postés 4013 Statut Membre 723
 
Salut,

case sensitive ou pas: paramètre au niveau de la base de données, non? Quelle DB utilises-tu?

++
0
[o.o]REplay Messages postés 385 Statut Membre 28
 
Yop,

J'utilise Oracle.

Mais je ne peux modifier cette base, car elle se situe sur un autre serveur :/

Je viens de faire des tests avec du mysql sur une table locale, si je fais un "select colOnNe from..."
je dois utiliser $array['colOnNe'] et non colonne ou COLONNE.
Tu penses que c'est oracle qui force à utiliser les majuscules? ou ODBC?
0
sandul Messages postés 4013 Statut Membre 723 > [o.o]REplay Messages postés 385 Statut Membre
 
Yup, ça vient probablement d'Oracle. Le plus simple c'est de se connecter à Oracle avec un client (sqlplus ou autre); essaie de faire des select pour voir ce que ça donne.

Si Oracle est case sensitive: essaie par la suite de faire un
alter session set NLS_SORT=BINARY;

et de refaire tes SELECT antérieurs dans la même sesssion. A partir d'une certaine version de la base (10g release je-ne-sais-plus-laquelle) Oracle devrait devenir subitement case insensitive (mais uniquement le temps de cette session).

++
0
[o.o]REplay Messages postés 385 Statut Membre 28 > sandul Messages postés 4013 Statut Membre
 
Merci pour té réponses,

Je vais essayer ce que tu me conseille, mais bon:
la base Oracle en question est bien case sensitive, ça j'en suis sure, mais je ne pense pas que le problème vienne de là:
Au contraire, vu qu'elle est case sensitive, si je demande un "select colonne as nOMcoLonNe...", le array renvoyé par odbc_fetch_array devrai être $array['nOMcoLonNe'], or là je dois utiliser $array['NOMCOLONNE'].

Je teste ça demain.
0
[o.o]REplay Messages postés 385 Statut Membre 28
 
J'ai abandonné l'idée de savoir d'où ça vient, je vais utiliser les noms des cases en majuscule: ça sera plus rapide et plus simple.
Le sujet reste non-résolu pour l'instant donc.
0