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 :

pb apostrophe dans texte à enregistrer dans base mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 81
    Points
    81
    Par défaut pb apostrophe dans texte à enregistrer dans base mysql
    Bonjour,

    j'ai un formulaire html avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td width="909" colspan="7">
     
    <textarea rows="6" name="question14" cols="69"></textarea></td>
    un script d'enregistrement des données en base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php 
    // On commence par récupérer les champs 
     
     
    $question1=isset($_POST["question1"])?$_POST["question1"]:"";
    $question2=isset($_POST["question2"])?$_POST["question2"]:"";
    $question3=isset($_POST["question3"])?$_POST["question3"]:"";
    $question4=isset($_POST["question4"])?$_POST["question4"]:"";
    $question5=isset($_POST["question5"])?$_POST["question5"]:"";
    $question6=isset($_POST["question6"])?$_POST["question6"]:"";
    $question7=isset($_POST["question7"])?$_POST["question7"]:"";
    $question8=isset($_POST["question8"])?$_POST["question8"]:"";
    $question9=isset($_POST["question9"])?$_POST["question9"]:"";
    $question10=isset($_POST["question10"])?$_POST["question10"]:"";
    $question11=isset($_POST["question11"])?$_POST["question11"]:"";
    $question12=isset($_POST["question12"])?$_POST["question12"]:"";
    $question13=isset($_POST["question13"])?$_POST["question13"]:"";
    $question14=isset($_POST["question14"])?$_POST["question14"]:"";
    $question15=isset($_POST["question15"])?$_POST["question15"]:"";
    $question16=isset($_POST["question16"])?$_POST["question16"]:"";
    $question17=isset($_POST["question17"])?$_POST["question17"]:"";
    $question18=isset($_POST["question18"])?$_POST["question18"]:"";
    $question19=isset($_POST["question19"])?$_POST["question19"]:"";
     
     
     
        { 
           // connexion à la base
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('questionnaire',$db)  or die('Erreur de selection '.mysql_error()); 
     
        // on écrit la requête sql 
        $sql = "INSERT INTO quest (question1, question2, question3, question4, question5, question6, question7, question8,
     question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19)
     VALUES
     (
    '$question1',
    '$question2',
    '$question3',
    '$question4',
    '$question5',
    '$question6',
    '$question7',
    '$question8',
    '$question9',
    '$question10',
    '$question11',
    '$question12',
    '$question13',
    '$question14',
    '$question15',
    '$question16',
    '$question17',
    '$question18',
    '$question19'
    )"; 
     
        // on insère les informations du formulaire dans la table 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
     
        }  
    ?>
    le problème est que d'es que le texte saisi contient une apostrophe ' j'ai une erreur sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !INSERT INTO quest (question1, question2, question3, question4, question5, question6, question7, question8, question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19) VALUES ( '', '', '', '', '', '', '', '', '', '', '', '', '', 'l'erreur est là ', '', '', '', '', '' )
    Erreur de syntaxe près de 'erreur est là ', '', '', '', '', '' )' à la ligne 18
    mon champs de base de donnée est en "longtext"

    je comprends pas car j'utilise le même script sur un autre site....et j'ai pas le problème...

    une idée ?

  2. #2
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708

  3. #3
    Membre régulier Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    merci,

    je dois donc rajouter cette fonction avant la valeur de la variable à recuperer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    VALUES
     (
    '$question1',
    '$question2',
    '$question3',
    '$question4',
    '$question5',
    '$question6',
    '$question7',
    '$question8',
    '$question9',
    '$question10',
    '$question11',
    '$question12',
    '$question13',
    'addslashes$question14',
    '$question15',
    '$question16',
    '$question17',
    '$question18',
    '$question19'
    )";

  4. #4
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    tu utilises la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $question1=isset($_POST["question1"])?$_POST["question1"]:"";
    honnêtement, je connaissais pas (moi pas grand spécialiste PHP non plus, nous parmi dieux ici )

    bref, perso j'aurai fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_POST['question1'])) {
      $question 1 = addslashes($_POST['question1']);
    }
    else {
      $question 1 = '';
    }
    avec ta méthode ça doit donner un truc dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $question1 = isset($_POST['question1'])? addslashes($_POST['question1']) : '';
    mais le code est moins clair à lire
    enfin ça après, les goûts et les couleurs...

  5. #5
    Invité
    Invité(e)
    Par défaut
    VALUES
    (
    '$question1',
    '$question2',
    '$question3',
    '$question4',
    '$question5',
    '$question6',
    '$question7',
    '$question8',
    '$question9',
    '$question10',
    '$question11',
    '$question12',
    '$question13',
    '".addslashes($question14)."',
    '$question15',
    '$question16',
    '$question17',
    '$question18',
    '$question19'
    )";
    comme ça c mieux et tu devra le faire pour ttes tes questions

  6. #6
    Membre régulier Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    je comprends pas .....je viens mettre à jour mon code....toujours la meme erreur sql....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !INSERT INTO quest (question1, question2, question3, question4, question5, question6, question7, question8, question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19) VALUES ( '', '', '', '', '', '', '', '', '', '', '', '', '', 'l'erreur', '', '', '', '', '' )
    Erreur de syntaxe près de 'erreur', '', '', '', '', '' )' à la ligne 18

  7. #7
    Invité
    Invité(e)
    Par défaut
    je vais essayer d'etre plus clair :
    pour eviter ce genre de pb il faut que tu parse ta variable car tu te rend bien compte quun apostrophe pose pb

    INSERT INTO quest (question1, question2, question3, question4, question5, question6, question7, question8, question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19) VALUES ( '', '', '', '', '', '', '', '', '', '', '', '', '', 'l'erreur', '', '', '', '', '' )
    si tu met le code que jai posté juste au dessus tu auras

    INSERT INTO quest (question1, question2, question3, question4, question5, question6, question7, question8, question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19) VALUES ( '', '', '', '', '', '', '', '', '', '', '', '', '', 'l\'erreur', '', '', '', '', '' )
    ceci marchera

    lors de la récuperation de ta valeur avec un select etc tu devra juste mettre un stripslashes pour enlever le \

    regarde du coté : addslashes, stripslahes et magic_quotes ça devrait bcp taider

  8. #8
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    est-ce que ca fonctionne avec les addslashes
    car moi j'aurais utilisé la concatenation au lieu...
    ben du moins pour tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ....
    $sql = "INSERT INTO quest (question1, question2, question3, question4, question5, question6, question7, question8,
     question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19)
     VALUES
     (
    '".$question1."','".$question2."','".$question3."','".$question4."', .........
    '".$question19."')"; 
     
     
    ....

  9. #9
    Membre régulier Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    c'est bon ...ça marche
    merci

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

Discussions similaires

  1. Sauvegarder un enregistrement dans une table de base de données
    Par souha2008 dans le forum Bases de données
    Réponses: 4
    Dernier message: 20/05/2008, 17h43
  2. textbox.text enregistrer dans la base de donnée
    Par christi dans le forum ASP.NET
    Réponses: 21
    Dernier message: 06/02/2007, 17h27
  3. Réponses: 7
    Dernier message: 21/08/2006, 16h27
  4. Variables dans texte issu de requette mysql
    Par thierry69000 dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/09/2005, 23h42
  5. [BDD] Erreur dans la connexion à une base MySQL
    Par dodo10 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/01/2005, 19h52

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