IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Nom de champ de table avec accent et mssql_query()


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de djoyeux
    Profil pro
    Inscrit en
    Août 2007
    Messages
    595
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 595
    Points : 668
    Points
    668
    Par défaut Nom de champ de table avec accent et mssql_query()
    Bonjour,

    Je poste mon problème ici car après avoir testé toutes les solutions présentes sur le net rien n'y fait.

    Je dois insérer des données dans une table qui comporte des champs avec des accents type "CrééLe".....
    Le problème est que cette base de données a été créée il y a fort longtemps et sans doute par des personnes ne connaissant pas bien le domaine....

    Bref cette base est utilisée depuis de nombreuses années et par beaucoup d'applications différentes (c'est une base référentiel) je ne peux donc pas renommer le champ.

    J'ai testé en faisant une copie et en renommant le champ en CreeLe et je ne rencontre pas de problème.

    en PHP 5.4.35 l'exécution de ma requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO [test].[dbo].[EVOL] (EVOL_Code, DateCréation, CrééPar, EVOL_Desc, EVOL_Type, EVOL_Etat) VALUES ('Z1010', '24/04/2016 12:00:33','djoyeux', 'test', 'E', 'ENC')

    Me retourne cette erreur :
    Warning: mssql_query(): message: Incorrect syntax near '�'. (severity 15)
    Je sais que c'est lié à l'accent et à l'encodage. j'ai essayé de forcer en différents encodage mais j'ai toujours cette erreur même si l'erreur de syntaxe change.

    Avez-vous déjà rencontré ce problème est si oui y a-t-il une autre solution que de créer une table temporaire avec un trigger SQL pour compléter la bonne ?

    Merci d'avance.
    Dieu de l'orthographe pardonne moi.
    Ne pas confondre language SMS et abréviation. ça n'a rien a voir...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu changes bien l'encodage du fichier .php lui même ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de djoyeux
    Profil pro
    Inscrit en
    Août 2007
    Messages
    595
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 595
    Points : 668
    Points
    668
    Par défaut
    oui aussi... j'ai essayé UTF-8, UTF-8 sans BOM, ISO 8859-1 et ISO8859-15 et d'autre mais je ne m'en souviens plus...
    Comment on peut savoir le jeux de caractère sur la BDD ? je n'ai que cette information : French_CI_AS

    A titre d'information, une simple requête select ne fonctionne pas non plus quand je veux faire un test sur un champ avec des accents.
    Dieu de l'orthographe pardonne moi.
    Ne pas confondre language SMS et abréviation. ça n'a rien a voir...

  4. #4
    Membre éclairé Avatar de djoyeux
    Profil pro
    Inscrit en
    Août 2007
    Messages
    595
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 595
    Points : 668
    Points
    668
    Par défaut
    J'ai contourné le problème en faisant une requête d'insertion en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO TABLE VALUES (xxxxx, xxxx, xxxxxx);
    Cela m'oblige à spécifier les 45 champs alors que je n'ai que 15 à renseigner...
    Mais bon cela fonctionne.

    Sur l'insertion j'avais aussi un problème avec les accents...
    Un iconv() sur la variable posant problème permet d'encoder comme il fallait tout ça.

    Je ne passe pas le problème en résolu car j'ai toujours des problèmes dans mes SELECT.

    Si je veux mettre un contrainte sur un champ avec ACCENT cela ne fonctionne pas et je n'ai pas encore trouvé de solution....

    PS : J'avoue haïr les personnes ayant créés cette base !!!!
    Dieu de l'orthographe pardonne moi.
    Ne pas confondre language SMS et abréviation. ça n'a rien a voir...

Discussions similaires

  1. Nom de champs de table trop long
    Par SGASSAMA dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 25/11/2009, 13h59
  2. [AC-2007] Ajouter 1 champ à 1 table avec 1 contenu
    Par MaryR dans le forum IHM
    Réponses: 5
    Dernier message: 09/10/2009, 18h12
  3. Update plusieurs Champs de Table avec un Record
    Par argoet dans le forum PL/SQL
    Réponses: 8
    Dernier message: 02/04/2009, 15h33
  4. [ODBC] Comment récupérer le nom des champs de table Access
    Par Alexlesilex dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/05/2006, 15h14
  5. Réponses: 6
    Dernier message: 05/04/2006, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo