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 :

conversion d'un chaine en php pour un nom de colonne valide sql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut conversion d'un chaine en php pour un nom de colonne valide sql
    Bonjour,


    Je recherche une fonction qui permet de formater une chaîne de caractères inconnue pour quelle soit compatible avec sql et pouvoir en faire un nom de colonne que je puisse utiliser ensuite pour des insertions.


    merci !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    c'est possible avec les expressions régulières. Quelque chose comme ça (trouvé sur Internet en 2 min) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $chaine = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $chaine ); //Remplace le caractère accentué (ou cédille) par la version sans accent
    $chaine = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $chaine ); // Remplace les ligatures
    $chaine = preg_replace('#[^A-Za-z0-9]+#', '_', $chaine); // Remplace tout ce qui n'est pas alphanumérique par le caractère souligné
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour la réponse !

    je ne voulais pas d'expression régulière, mais tant que ça marche ^^

    la gestion des accents ne fonctionne que si on ajoute cette ligne avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str = htmlentities($str, ENT_NOQUOTES, 'utf-8');
    Oui j'ai finis par retrouver ce site moi aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 38
    Dernier message: 08/11/2013, 12h12
  2. [Débutant] utiliser variable pour le nom de colonne d'une procedure rowfilter
    Par Ashireon dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/09/2012, 13h32
  3. [Toutes versions] [VBA] Convertir une chaine en Range pour une sélection de colonnes
    Par Aurelangelo dans le forum Macros et VBA Excel
    Réponses: 34
    Dernier message: 14/04/2009, 15h37
  4. Caractères autorisé pour un nom de colonne
    Par wariom dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/04/2008, 10h49
  5. Réponses: 4
    Dernier message: 03/12/2007, 20h32

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