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 :

caractères "interdits"


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut caractères "interdits"
    bonjour à tous

    je suis en train d'écrire une requête qui permettra à l'utilisateur de rentrer lui même des infos en BBD avec Mysql

    j'ai identifié un certain nombre de caractères tapés qui amènent des erreurs de syntaxe lors de l'insertion

    où puis-je trouver la liste de tous les caractères (réservés) à transformer (pour ne pas en oublier)?
    pour tous ces caractères identifiés, suffit-ilque je mette un \ devant pour que mes requêtes d'insertion passent?

    merci pour votre aide

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    Peut tu être plus clair dans ta questrion avec des éléments précis et notamment des exemple de code et les message d'erreur ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    bonjour

    dans ma requête j'ai substitué pour l'instant le '
    car étant donné que j'insère dans ma table sous la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO suivi_pb (demandeur,mail,categorie,description,datedebut,action) VALUES ('".$nom."','".$mail."','".$typepb."','".$insertion."','".$dateactuelle."','0')";
    ce que je voulais savoir c'est s'il y avait d'autres types de caractères à substituer pour ne pas avoir de parse error ou d'erreur de syntaxe...

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Pour faire apparaître une apostrophe dans une chaîne de caractère, il faut la doubler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO TaTable (nom) VALUES ('L''apostrophe')
    /!\ ATTENTION /!\ Ce n'est pas un guillemet (").

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 14
    Points : 8
    Points
    8
    Par défaut cote et apostrophe dans chaîne de caractères
    Bonjour,
    Comment écrire une valeur textuelle comportant des apostrophes (') quand on ne sait où ce sera, si les valeurs sont issues de variables?

    Et en plus si le langage ( Visual Basic) demande d'écrire les chaînes SQL encadrées de guillemets ("), je m'y perds!

    Exemple
    mysql="UPDATE [matable] SET monchamp='test d'enfer' WHERE id=1"

    monchamp requiert des valeurs textuelles donc à encadrer par un simple cote

    mais dans la valeur une apostrophe peut surgir je ne sais où ; la vraie requête est :
    mavaleur="test d'enfer"
    ......
    mysql="UPDATE [matable] SET monchamp=' " & mavaleur & " ' WHERE id=1"

    Cette requête génère une erreur, puisqu'il y a trois cote dans
    'test d'enfer'

    Merci d'avance pour toute aide

    Cordialement

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 14
    Points : 8
    Points
    8
    Par défaut double apostrophe
    Merci Google,
    J'ai trouvé la solution en deux temps :

    - d'abord, il faut remplacer les apostrophes dans la valeur par un double apostrophe, au moyen d'une fonction, ça donne test d''enfer

    - ensuite, il faut mettre les noms de champs entre crochets!!

    mysql="UPDATE [matable] SET [monchamp]=' " & mavaleur & " ' WHERE id=1"

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

Discussions similaires

  1. [PL/SQL] Chaine de caractères avec une quote
    Par Titouf dans le forum Oracle
    Réponses: 2
    Dernier message: 15/05/2006, 14h36

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