Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
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 10/02/2011, 11h02   #1
Futur Membre du Club
 
Inscription : mai 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 71
Points : 15
Points : 15
Par défaut Problème avec "£" dans requête

Bonjour à tous,

voilà je vous explique mon problème. Je dois accéder à des fichiers(=tables) sur une base DB400 (AS400) pour y récupérer un certains nombre de données. Pour cela j'utilise une connexion ODBC via PDO. Ca marche très bien, j'arrive à accéder aux fichiers AS400. Par contre je suis toujours obligé de préfixer mes noms de fichiers par le nom de la bibliothèque DB400, comme ci-dessous :

ex : SELECT * FROM C84FILES.MPMSP100

Le hic c'est que certains fichiers dont j'ai besoin appartiennent à une bibliothèque nommée "V1FSFILES£". Mon problème c'est que PDO ne semble pas aimer le signe "£" dans le nom de la bibliothèque. Il me retourne une erreur :

Elément syntaxique  n'est pas correct. Eléments possibles (...)

Du coup je suis bien embêté. J'ai essayé de mettre des quotes... mais rien n'y fait.

Savez vous par quel moyen je peux contourner ce problème.

Par avance merci de votre aide.
Sanceray3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 11h06   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu as un peut être problème d'encodage.

"£" est un "£" codé en UTF8 et affiché comme s'il était en ANSI.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2011, 11h13   #3
Futur Membre du Club
 
Inscription : mai 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 71
Points : 15
Points : 15
C'est bon, c'était bien ça. J'ai crée un fichier à partir du bloc note. Je l'ai enregistré en ANSI, et maintenant ça passe.

Grand merci ! ;o)
Sanceray3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 11h20   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Visiblement ta base de donnée traite la chaine comme si elle etait en ANSI.

Tu peux aussi envoyer une chaine ANSI avec UTF8_decode().
Ou bien annoncer a ton SGDB que tu communiques avec lui en UTF8 (sur un AS400 je ne saurais pas te dire comment).
sabotage 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 11h43.


 
 
 
 
Partenaires

Hébergement Web