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 :

erreur sql lorsque des ' sont présents [MySQL]


Sujet :

PHP & Base de données

  1. #1
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut erreur sql lorsque des ' sont présents
    bonjour,

    lors de l'insertion en base de donees, j'ai une erreur sql, car apparement il interprete les ' qui sont dans le nom des donnees que j'insert.

    comment resoudre le probleme ?

    merci
    fey

  2. #2
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Bonsoir.

    Avant d'insérer dans une requete tu dois échapper les caractères spéciaux dont ' avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = mysql_real_escape_string($texte);
    et quand tu lis ta table utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte= stripslashes(htmlentities(trim($res['champ_de_la_table'])));

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Citation Envoyé par philippef Voir le message
    et quand tu lis ta table utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte= stripslashes(htmlentities(trim($res['champ_de_la_table'])));
    Oulalalala. htmlentities n'a rien à faire là (à moins que la donnée doive être affichée, éventuellement), et stripslashes encore moins.

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    je me suis mal expimé!!
    quand je dis $texte= stripslashes(htmlentities(trim($res['champ_de_la_table'])));
    c'est effectivement pour afficher $texte.

  5. #5
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut
    donc pour recapituler je fais le mysql_real_escape_string()
    et ca j'en ai pas besoin c'est cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $texte= stripslashes(htmlentities(trim($res['champ_de_la_table'])));
    voila la situation ^^
    j'affiche la liste de mes articles en fonction de la categorie
    la personne rempli sont nom, prenom .... plus selectionne les articles ainsi que les quantites ce qui les ajoute dans un tableau
    une fois cela fait j'envoie les donnnes en base.

    dans tous les cas merci pour vos reponses

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Citation Envoyé par philippef Voir le message
    je me suis mal expimé!!
    quand je dis $texte= stripslashes(htmlentities(trim($res['champ_de_la_table'])));
    c'est effectivement pour afficher $texte.
    OK, mais stripslashes n'a toujours rien à faire là, à moins que les données aient été ajouté avec un slash de trop lors de l'ajout en base. Possible si magic_quotes est activé, mais dans ce cas il est recommandé de faire un stripslash à l'insertion, et non à l'affichage. (En fait il est surtout recommandé de désactiver purement et simplement cette horreur de magic_quotes.)

  7. #7
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut
    ok merci cela fonctionne.

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

Discussions similaires

  1. [MySQL] Erreur SQL à cause des '
    Par Nours40 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 05/01/2015, 15h48
  2. [Débutant][PL/SQL] Gestion des erreurs
    Par weebib dans le forum Oracle
    Réponses: 4
    Dernier message: 13/06/2006, 16h22
  3. Gestion des erreurs SQL
    Par savior dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/05/2006, 11h35
  4. [SQL server 2005 express] liste des erreurs SQL serveur 2005
    Par critok dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/05/2006, 19h17
  5. [MySQL] Erreur sql pour inserer des checkbox
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/11/2005, 11h06

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