Odbc et case sensitive

Fermé
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 - 4 août 2008 à 15:05
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 - 5 août 2008 à 11:37
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 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 721
4 août 2008 à 15:09
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 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
4 août 2008 à 15:24
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 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 721 > [o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009
4 août 2008 à 15:35
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 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28 > sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010
4 août 2008 à 16:26
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 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
5 août 2008 à 11:37
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