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 04/01/2011, 14h34   #1
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
Par défaut Requête avec une variable contenant une chaine de caractères accentué non trouvé

Bonjour et bonne année,
je viens ici car j'ai un souci d'accent.
j'utilise une base de données oracle. Dans cette base j'ai certains attributs avec des accents ex: ménagères. Lorsque je fais une requête sql sous putty:
Code :
select * from ma_table where nom='ménagères';
cela fonctionne et me retourne la ligne correspondante.
Mais en php cela ne fonctionne pas:
j'ai ma variable :
Code :
select * from ma_table where nom='$var';
et la ça ne fonctionne plus. il ne trouve rien.
Comment faire pour que la requête accepte les accents sans devoir changer le nom de ma variable?
merci d'avance
chris.
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 14h36   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
t'as bien le même encodage de table et de fichier et d'en-tête php ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 14h45   #3
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
merci pour votre réponse.
ou trouver l'encodage d'une table?
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h05   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par chris0938 Voir le message
merci pour votre réponse.
ou trouver l'encodage d'une table?
je pense que je soucis vient plutôt de ton php qui n'est pas en utf-8
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h35   #5
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
ah!
et comment résout-on cela?
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h37   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par chris0938 Voir le message
ah!
et comment résout-on cela?
y'a plein de trucs sur le net sur ce sujet
http://electron-libre.fassnet.net/utf8.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h43   #7
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
je ne suis pas sous mysql mais Oracle mais j'ai des pistes maintenant.
merci.
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h03   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par chris0938 Voir le message
je ne suis pas sous mysql mais Oracle mais j'ai des pistes maintenant.
merci.
la partie mysql ne te conserne pas, oracle est même en utf-8 par default je crois (utf-16 même)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h11   #9
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
j'ai trouvé ceci:
http://www.google.fr/url?sa=t&source...n2N-3w&cad=rja
Code :
1
2
3
 
SQL>ALTER SESSION SET NLS_COMP=LINGUISTIC;	REM Mentionne à Oracle de se fier au paramètre NLS_SORT.
SQL> ALTER SESSION SET NLS_SORT=BINARY_AI;
pour être sur d'avoir compris en faisant cela je résoudrai mon problème?
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h13   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par chris0938 Voir le message
j'ai trouvé ceci:
http://www.google.fr/url?sa=t&source...n2N-3w&cad=rja
Code :
1
2
3
 
SQL>ALTER SESSION SET NLS_COMP=LINGUISTIC;	REM Mentionne à Oracle de se fier au paramètre NLS_SORT.
SQL> ALTER SESSION SET NLS_SORT=BINARY_AI;
pour être sur d'avoir compris en faisant cela je résoudrai mon problème?
ton probleme est plus du coté de serveur + php, est ce que les 2 sont en utf-8 ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h20   #11
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
j'ai fais :
Code :
1
2
3
4
5
6
7
8
9
10
select * from NLS_DATABASE_PARAMETERS ;
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               WE8ISO8859P1
[...]
et php est en iso-8859-1
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h27   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
verfifie ta chaine entiere d'encodage

sortie du serveur, encodage du fichier, de l'entête, du html, de la connexion du serveur, et de la table
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h32   #13
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
honnêtement, je ne sais pas comment avoir ces informations!
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h42   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par chris0938 Voir le message
honnêtement, je ne sais pas comment avoir ces informations!
sortie du serveur : firefox -> clique droit -> information sur la page -> Encodage
encodage du fichier : notepad++ -> encodage
l'entête c'est la meme que la sortie du serveur
du html : c'est ta balise <meta http-equiv="Content-Type">

regarde au moins ceux la, normalement oracle est en utf-8 au niveau connexion
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h49   #15
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
sortie du serveur: ISO-8859-1
encodage du fichier: je travaille sous netbeans et l'encodage est aussi iso-8859-1
html:
Code :
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h53   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
jusqu'ici tout va bien alors, manque plus que la connexion
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 17h07   #17
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
je suis désolé mais je ne sais pas ou chercher l'encodage de la connexion oracle.
désolé
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 17h11   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par chris0938 Voir le message
je suis désolé mais je ne sais pas ou chercher l'encodage de la connexion oracle.
désolé
ca doit etre dans ton fichier de config, Unicode=true/false
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 10h03   #19
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
Bonjour,
je n'ai pas trouvé de "champs" unicode dans mon fichier de config.
je ne sais pas si ça peut servir:
Code :
NLS_NCHAR_CHARACTERSET         AL16UTF16
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 21h23   #20
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Code :
select * from ma_table where nom='$var';
C'est juste une simplification ou c'est comme ça dans le code php. Es tu bien sûr que la requête executer via php a bien remplacé $var par ménagère.
Sinon le code devrait plutôt ressembler à :
Code :
select * from ma_table where nom=:1;
ou
Code :
select * from ma_table where nom=?;
puis bind puis execute.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h49.


 
 
 
 
Partenaires

Hébergement Web