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 :

php enregistrer un champ contenant des virgules [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 109
    Points : 64
    Points
    64
    Par défaut php enregistrer un champ contenant des virgules
    Bonjour
    je dois enregistrer un champ contenant des virgules dans ma base de données.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "INSERT INTO $maTable (
    champ1,
    champ2) VALUES(
    '$champ1',
    '$champ2'
    )

    or $champ2=' motclé1, motclé2

    ce qui donne une requête fausse

    Quelqu'un peut il m'aider
    Merci

  2. #2
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 109
    Points : 64
    Points
    64
    Par défaut
    J'ai rajouté des \ et ca marche
    est ce vraiment la bonne solution?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Tu devrais montrer ton code, car en SQL il existe des fonctions du style mysql_real_escape_string qui échappes les caractères sensibles avant insertion.

    Si tu utilises PDO, même plus besoin de cette fonction.

    Ajouter des "\" manuellement n'est pas la bonne méthode, car ça pollue ta base de données pour rien. De plus, à l'affichage, tu seras obliger de les enlever, pas tip top ...
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    $champ2=' motclé1, motclé2
    1) Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.

    2) Les données que tu veux insérer dans une seule colonne montrent que tu as un problème de modélisation de la BDD !

    Tu devrais avoir ce MCD :
    contenu -0,n----associer----0,n- mot_cle

    Ce qui donne ces tables :
    contenu (cnt_id, cnt_texte...)
    mot_cle (mcl_id, mcl_mot...)
    cnt_associer_mcl (cam_id_contenu, cam_id_mot_cle)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 109
    Points : 64
    Points
    64
    Par défaut
    Merci pour ces réponses mysql_real_escape_string marche très bien dans mon cas, j'avais zappé cette instruction

    MERCI

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

Discussions similaires

  1. Requête MySql sur champ contenant des virgules
    Par Invité2 dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2011, 13h49
  2. Réponses: 5
    Dernier message: 23/12/2010, 20h12
  3. Réponses: 2
    Dernier message: 23/12/2010, 18h35
  4. Réponses: 7
    Dernier message: 01/09/2006, 14h19
  5. insérer un champs contenant des apostrophes ou es guillemets
    Par renofx1 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 18/01/2006, 15h49

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