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

Langage SQL Discussion :

Insertion de variable avec guillemets dans une table SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Insertion de variable avec guillemets dans une table SQL
    Bonjour,

    Ma question est simple, j'ai une chaine de caractère de type : "chaine1" "chaine2" contenu dans une variable en PHP et je souhaiterai inserer cette chaine dans ma table SQL mais sans envelé les guillemets.

    Pour l'instant j'obtient chaine1chaine2 alors que je voudrai garder les 4 doubles quotes pour obtenir "chaine1" "chaine2"

    Savez vous comment faire?

    Merci

  2. #2
    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 : 61
    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 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Dans la requête, on met normalement les valeurs alphanumériques entre quote ' et non entre guillemets ".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO latable(lacolonne)
    VALUES('lavaleur');
    Je viens d'essayer ça dans php MyAdmin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Aides_test(Nom)
    VALUES('"dodo"')
    Et j'ai bien "dodo" dans la table.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Le problème est que certaines chaine de caractère possède des simples quote
    " RECHERCHE D'EAU " et j'ai alors le message d'erreur suivant:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EAU" ')' at line 1

    Car a cause de la simple quote il considère seullement "Recherche d" et donc il y a une erreur par la suite

    Voici la requete PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $insertion ="INSERT INTO requete (requete1) VALUES ('$var')";
    $inserttable= mysql_query($insertion) or die(mysql_error());
    $var contient par exemple : "Recherche d'eau"

    Que faire ?

  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 : 61
    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 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Quand il y a une apostrophe, il faut la doubler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Aides_test(Nom)
    VALUES('Recherche d''aide')
    Tu peux aussi l'échapper mais il faudra ensuite te débrouiller dans ton logiciel pour retirer l'antislash quand tu récupéreras les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Aides_test(Nom)
    VALUES('Recherche d\'aide')

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Sachant que l'apostrophe est dans une variable et que je ne peut modifier cette variable car extraite d'un dictionnaire de données que puis je faire?

  6. #6
    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 : 61
    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 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    La fonction addslashes() est ton amie

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

Discussions similaires

  1. Insertion d'une selection avec Union dans une table
    Par samgan dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/08/2011, 11h04
  2. [SQL 2005] Insertion de deux données identiques dans une table
    Par skystef dans le forum Accès aux données
    Réponses: 3
    Dernier message: 04/01/2007, 22h50
  3. Réponses: 7
    Dernier message: 27/01/2006, 15h57
  4. Insertion d'un nombre réel dans une table
    Par mouloudéen dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/09/2005, 23h17
  5. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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