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

MySQL Discussion :

insertion apostrophe phpmyadmin


Sujet :

MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Points : 55
    Points
    55
    Par défaut insertion apostrophe phpmyadmin
    Bonjour,

    Je souhaiterais insérer une valeur de type VARCHAR directement dans phpmyadmin.
    Le problème est qu'une des valeur à un apostrophe.

    A l'affichage, l'apostrophe bug.

    Donc comment inserer correctement un apostrophe dans phpmyadmin ?

    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 : 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
    Que ce soit dans MySQL ou dans un autre SGBD, d'une manière générale, donc, en SQL, l'apostrophe est le caractère qui encadre les chaînes de caractères. Pour insérer une apostrophe, il faut alors la doubler.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO la_table(la_colonne)
    VALUES('Aujourd''hui')
    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 !

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    J'ai fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `taxonomyCat` SET `add_taxonomyCat`='behavioral''s verb' WHERE `id_taxonomyCat`=17
    Mais cela ne change toujours rien, ça bug à l'affichage.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 377
    Points : 19 049
    Points
    19 049
    Par défaut
    Salut fredo8.

    Il faut mettre ta chaîne de caractères entre guillemet comme ci-après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE  taxonomyCat  SET  add_taxonomyCat = "behavioral's verb"  WHERE  id_taxonomyCat= 17;
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut fredo8.

    Il faut mettre ta chaîne de caractères entre guillemet comme ci-après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE  taxonomyCat  SET  add_taxonomyCat = "behavioral's verb"  WHERE  id_taxonomyCat= 17;
    @+
    Salut,

    Ca ne marche pas.

    Par contre, lors de l'ajout ou modification, j'ai un champ "fonction" avec une liste déroulante, il y aurait pas une fonction à sélectionner par hasard ?

    Merci

  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 : 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
    Ca ne marche pas.
    Ceci n'est pas un message d'erreur !

    Symptômes ?
    - La modification n'est pas effectuée ?
    - La requête ne s'exécute pas ?
    - Le SGBD renvoie un message d'erreur ?
    - L'ordinateur a explosé ?

    La syntaxe de votre requête est tout à fait correcte. Cela se devine d'ailleurs avec la coloration syntaxique qui l'interprète correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `taxonomyCat` SET `add_taxonomyCat`='behavioral''s verb' WHERE `id_taxonomyCat`=17
    Par contre, lors de l'ajout ou modification, j'ai un champ "fonction" avec une liste déroulante, il y aurait pas une fonction à sélectionner par hasard ?
    C'est quoi cette histoire de fonction ? Qu'utilisez-vous pour faire exécuter la requête par MySQL ?
    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 !

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Le PC fume un peu

    La valeur en elle même se met dans la colonne.

    Mais pour l'afficher sur le site, voilà l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 's verb'' at line 1
    La liste de fonctions que je parle :
    Nom : BD1.jpg
Affichages : 2677
Taille : 51,0 Ko

    Et où je fais les requête SQL :
    Nom : BD2.jpg
Affichages : 2786
Taille : 46,9 Ko

    Par le php, j'utilise addslashes mais j'entre les valeurs directement dans PhpMyAdmin.

  8. #8
    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
    Et où je fais les requête SQL :
    Si tu copies-colles ta requête dans cette partie et que tu l'exécutes, tu ne devrais pas avoir d'erreur et la valeur sera mise à jour.

    Par le php, j'utilise addslashes mais j'entre les valeurs directement dans PhpMyAdmin.
    Euh...
    Dans une de mes tables de test, j'ai inséré la valeur "aujourd'hui" dans une colonne texte directement en tapant aujourd'hui (sans rien autour) dans la zone d'insertion et ça a marché. phpMyAdmin a soumis à MySQL la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO `test`.`objet` (`id_objet`, `nom_objet`, `id_groupe`) VALUES ('0', 'aujourd''hui', '1');
    Mais pour l'afficher sur le site, voilà l'erreur :
    Pour afficher, on ne fait pas une requête UPDATE mais une requête SELECT !

    Veux-tu dire que tu essaies de soumettre la requête UPDATE via un programme PHP que tu as écrit ?
    Si oui, donne-nous le bout de programme.
    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 !

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Je suis en train de me rendre compte que l'erreur ne vient pas de "comment on entre la valeur" mais plutôt pour l'afficher.

    J'ai résolue une erreur pour l'affichage, je récupérais le champ pour le réutilisé dans une autre requetes, j'ai donc mis "addslashes" et affiche correct.
    Par contre à un autre endroit, pour l'affichage dans une balise HTML, j'ai remplacé ' par \" (\' ne marchait pas) ( et les ' du HTML).


    Merci de m'avoir éclairer.

  10. #10
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 377
    Points : 19 049
    Points
    19 049
    Par défaut
    Salut fredo8.

    Je ne comprends pas trop vos explications sur "ça ne marche pas".
    En mysql pur, mettre une chaîne de caractères en guillemet avec une apostrophe à l'intérieur, fonctionne très bien comme je l'ai fait.
    On peut aussi utiliser la double apostrophe, comme l'indique CinPhil, mais cela ne fonctionne pas en mysql pur.

    Si vous travaillez, en php vous devez utiliser l'escape pour que l'apostrophe ne soit pas interpréter comme une fin de chaîne.
    Exemple : behavioral[color=red]\'[color]s verb

    Pourquoi mettre un espace devant certains caractères ?
    Exemple : UPDATE `taxonomyCat` SET `add_taxonomyCat`='behavioral'[color=red]s verb[color]' WHERE `id_taxonomyCat`=17
    ce que j'ai mis en rouge provequera une erreur de syntaxe car l'apostrophe final de behavioral sera interprété comme une fin de chaîne.

    Citation Envoyé par fredo8
    Je suis en train de me rendre compte que l'erreur ne vient pas de "comment on entre la valeur" mais plutôt pour l'afficher.
    Ce n'est pas un problème d'affichage que vous avez mais un problème d'interprétation.
    Saisissez avec phpmyadmin, la valeur behavioral\'s avec un anti-slash qui est la caractère escape et normalement cela devrait fonctionner.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  11. #11
    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
    On peut aussi utiliser la double apostrophe, comme l'indique CinPhil, mais cela ne fonctionne pas en mysql pur.
    Bien sûr que si !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MariaDB [test]> INSERT INTO te_cours_crs(crs_titre, crs_date)
        -> VALUES ('L''informatique pour les nuls', '2015-06-05');
    Query OK, 1 row affected (0.02 sec)
     
    MariaDB [test]> SELECT crs_titre
        -> FROM te_cours_crs
        -> WHERE crs_date = '2015-06-05';
    +------------------------------+
    | crs_titre                    |
    +------------------------------+
    | L'informatique pour les nuls |
    +------------------------------+
    1 row in set (0.00 sec)
    Tu veux t'inscrire à ce cours ?
    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 !

  12. #12
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 377
    Points : 19 049
    Points
    19 049
    Par défaut
    Salut CinePhil.

    Je te parle de MySql pur, au travers de l'application mysql en batch sous windows, et tu me réponds Php.
    Je ne voie pas trop la relation.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  13. #13
    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
    tu me réponds Php.
    Encore raté !

    Ce que je t'ai montré, justement, c'est l'utilisation de MySQL (MariaDb mais c'est pareil) en ligne de commande dans une console Linux. Difficile de faire plus "pur" !
    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 !

  14. #14
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 377
    Points : 19 049
    Points
    19 049
    Par défaut
    Salut CinePhil.

    J'adore ta façon de t'exprimer.
    On te parle de MySql, tu nous parles de MariaDB.
    On te parle de Windows, tu nous parles de Linux.
    On te parle d'un batch MySql sous windows et tu nous parles de Php.
    Moi, j'appelle cela faire un hors sujet et cela ne répond pas à l'attente de Fredo8.

    A la question de Fredo8, il faut utiliser le caractères escape noté anti-slash devant l'apostrophe (\') quand il saisie une chaîne de caractères avec phpmyadmin.
    Afin de ne pas interpréter cet apostrophe comme la marque de la fin d'une chaîne de caractères.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  15. #15
    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
    L'utilisation de l'apostrophe doublée, c'est du standard SQL qu'applique très bien MySQL, qu'il soit sous Linux ou sous Windows, dans une requête écrite en accès en ligne de commande ou dans la zone de saisie des requêtes de phpMyAdmin.

    Citation Envoyé par Fredo8
    Je souhaiterais insérer une valeur de type VARCHAR directement dans phpmyadmin.
    Le problème est qu'une des valeur à un apostrophe.
    Je viens (encore) de tester dans mon phpMyAdmin (certes, sous Linux, mais ça n'a aucune importance), cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO t_groupe (grp_name, grp_cls_id) VALUES ('L''école des nuls', 1)
    Réponse de phpMyAdmin :
    1 ligne insérée.
    Identifiant de la ligne insérée : 3 (Traitement en 0.0794 secondes.)
    Un petit SELECT pour vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `t_groupe` WHERE grp_name = 'L''école des nuls'
    Réponse :
    grp_id, grp_name, grp_cls_id
    3, L'école des nuls, 1

    Tu veux t'inscrire à ce groupe ?

    À part, ça, Fredo8 a semble t-il résolu son souci d'affichage qui concernait apparemment un programme PHP et donc hors sujet effectivement ici.
    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 !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2014, 17h05
  2. [phpMyAdmin] Insertion sur phpMyAdmin
    Par medhan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 03/12/2013, 16h14
  3. [phpMyAdmin] Choix "fonction" dans insertion avec phpMyAdmin
    Par ledisciple dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 17/01/2009, 22h35
  4. insertion avec phpmyadmin
    Par aaristocat dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/08/2007, 11h40
  5. [MySQL] insertion sou phpmyadmin diferente de cell sou php direct
    Par napz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/11/2006, 17h35

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