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

Requêtes MySQL Discussion :

Backslash et apostrophe


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut Backslash et apostrophe
    je cherche a savoir comment selectionner une valeur "Fonderie d\'âmes" dans la BBD. Exemple concret : http://dd.free.fr/index.php?page=cont&cont=6&lie=2
    Ps : précédent post http://www.developpez.net/forums/vie...389859#2389859

    Dans ma base de données j'ai trois ligne.
    Domaine de Realadain Domaine de Realadain 58.3S, 58.4E
    Test Fonderie d'âme 54564
    Mines de pyréal Fonderie d'âme 29.2S, 58.8E
    "Domaine de Realadain" pour témoin.
    "Test" qui dans la base de données a son champ "lieux_région = Fonderie d'âme"
    "Mines de pyréal" qui dans la base de données a son champ "lieux_région = Fonderie d\'âme"

    Pour l'enregistrement de chaque objet, je doit faire un addslashes(), donc pour le test j'ai du changer à la main la valeur de lieux_région dans la bdd (supprimé le \)

    La liste déroulante est faire avec le contenu de la BDD, donc deux fonderie d'âmes avec et sans \. Première chose, dans la liste elle sont identique, (normale je fait un stripslashes dessus avant de l'afficher).

    Mais impossible de sélectionner la ligne. De plus la requete
    SELECT * FROM `ac2_lieux` WHERE `lieux_region`="Fonderie d'\'âmes"
    n'affiche rien ... Je ne sait pas si c'est ma requete ou la façon d'on je m'y prend qui est fausse.

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut Re: Backslash et apostrophe
    Citation Envoyé par Space Cowboy
    De plus la requete
    SELECT * FROM `ac2_lieux` WHERE `lieux_region`="Fonderie d'\'âmes"
    n'affiche rien ...
    Pourquoi rajouter un autre quote avant le \' ? A mon avis ça marcherait mieux comme ceci :

    SELECT * FROM `ac2_lieux` WHERE `lieux_region`='Fonderie d\'âmes'
    ou bien

    SELECT * FROM `ac2_lieux` WHERE `lieux_region`='Fonderie d''âmes'

  3. #3
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut
    Erreur de ma part.
    Une requete type c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM ac2_lieux WHERE lieux_region = 'Fonderie d\'âme' AND lieux_type = 'Centre' ORDER BY lieux_region
    J'ai essayé en fesant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM ac2_lieux WHERE lieux_region = "Fonderie d\'âme" AND lieux_type = "Centre" ORDER BY lieux_region
    mais ca ne change rien.


    [code]SELECT * FROM `ac2_lieux` WHERE `lieux_region`='Fonderie d''âmes' [/quote]Aucune réponse, par contre [code]SELECT * FROM `ac2_lieux` WHERE `lieux_region`='Fonderie d\\''âmes'[/code] donne la bonne réponse, mais je ne sait pas ajouter ' ni deux \ et un ' en php.

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Bon ben c'est un problème PHP alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $maRequete = "SELECT * FROM ac2_lieux WHERE lieux_region = \"Fonderie d'âme\" AND lieux_type =\"Centre\" ORDER BY lieux_region" ;
    ou:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $maRequete = 'SELECT * FROM ac2_lieux WHERE lieux_region = "Fonderie d\'âme" AND lieux_type ="Centre" ORDER BY lieux_region' ;
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  5. #5
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut
    Première erreur, deuxième sélectionne un résultat sur deux.
    Problème php ?

  6. #6
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Essaie de vérifier que dans ta base tu as bien des valeurs du style "Fonderie d'âmes" et non pas "Fonderie d\'âmes"...

  7. #7
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Et fais aussi un "echo $maRequete" pour voir si les apostrophes ont été correctement évalués (mais normalement il ne devrait pas y avoir de problèmes)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  8. #8
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut
    Citation Envoyé par Maximilian
    Essaie de vérifier que dans ta base tu as bien des valeurs du style "Fonderie d'âmes" et non pas "Fonderie d\'âmes"...
    Justement, j'ai "Fonderie d\'âmes" dans ma base a cause du addslashes().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM ac2_lieux WHERE lieux_region = "Fonderie d'âme" AND lieux_type = "Centre" ORDER BY lieux_region, lieux_nom
    Sa pourrais venir de l'encodage de la table ?

  9. #9
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Citation Envoyé par Space Cowboy
    Justement, j'ai "Fonderie d\'âmes" dans ma base a cause du addslashes().

    Sa pourrais venir de l'encodage de la table ?
    Non, c'est juste qu'il faut pas faire un INSERT avec des '\' en trop...
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. Pb apostrophes et replace access2000
    Par xycoco dans le forum Access
    Réponses: 8
    Dernier message: 06/10/2004, 15h11
  2. Réponses: 3
    Dernier message: 10/06/2004, 22h34
  3. Apres l'accent l'apostrophe
    Par man80 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 04/05/2004, 16h47
  4. Stocker un apostrophe
    Par Bowen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/03/2004, 00h00
  5. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39

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