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 PHP Discussion :

Problemes de '


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Par défaut Problemes de '
    $sql = 'INSERT INTO Contact_Internet (IDContact_Internet, Nom, Prenom, AdresseEMail, MessageTXT, DateMessage, IDMAITRE) VALUES ('', '\''.$nom.'\'','\''.$prenom.'\'','\''.$email.'\'','\''.$message.'\'','\''.$date.'\'')';

    bonjour,
    bah voila je galere a mort avec les ' donc ici les deux caractères qui me pose probleme sont ceux en gras
    y a que des ' simples

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut Re: Problemes de '
    Essaie comme ça :

    $sql = 'INSERT INTO Contact_Internet (IDContact_Internet, Nom, Prenom, AdresseEMail, MessageTXT, DateMessage, IDMAITRE) VALUES (\'\', \''.$nom.'\',\''.$prenom.'\',\''.$email.'\',\''.$message.'\',\''.$date.'\')';

  3. #3
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Bonjour,

    Voici une correction si ça te va ( je pense que ça marche, je n'ai pas testé car j'ai pas PHP ici )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'INSERT INTO Contact_Internet '
         . '(IDContact_Internet, Nom, Prenom, AdresseEMail, MessageTXT, DateMessage, IDMAITRE) '
         . ' VALUES '
         . '(\'\', \''.$nom.'\',\''.$prenom.'\',\''.$email.'\',\''.$message.'\',\''.$date.'\')';

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Par défaut
    merci j'ai la solution de MiJack et ca marche sinon en comparant(sans test) la solution de KiLVaiDeN a l'air de marcher aussi

  5. #5
    Membre expérimenté Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Par défaut
    heu si tu commences ta ligne par un " tu peux mettre des ' sans \


    ps : en php tu n'es pas obligé de faire des ' ". $var ." ' tu peux mettre simplement la variable '$var' si plus rapide et plus court

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    En fait ( et je ne sais pas si le fonctionnement de PHP a évolué à ce sujet dans la version 5, désolé si je dis des bêtises, mais je me base sur des informations un peu anciennes ) le fonctionnement des String sous PHP est différent en fonction qu'on utilise des simples quotes ou des doubles quotes.

    Les simples quotes délimitent un texte constant, aucune interpretation de variable ne sera effectué

    Ceci (avec simple quote) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $test = "coucou";
    print('$test jean!');
    Affichera "$test jean!" à l'écran. Par contre, pour afficher la valeur, il faut utiliser des doubles quotes :

    Affichera "coucou jean!".

    Donc j'ai l'impression qu'il y a deux moteurs d'interprétation des Strings en PHP : l'un, plus lourd surement, vérifie constamment si il y a une valeur à interpreter dans la chaine passé en paramètre ( je parle de celui avec des doubles quotes ). L'autre, plus rapide, n'effectue pas de test; il renvoit la valeur telle quelle.

    Il serait interessant de tester la différence en temps de réponse entre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print($test . ' jean!');
    et
    Enfin dans ce cas à mon avis la différence sera minime, mais dans d'autres cas avec des traitements plus lourd, ça peut se ressentir... Une bonne règle d'optimisation est de toujours utiliser les simples quotes pour des chaines constantes, et pour améliorer la lisibilité, d'utiliser des doubles quotes quand il y a des valeurs à interpreter

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Par défaut
    merci

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Par défaut
    Effectivement, en PHP (même en 5) l'utilisation des doubles quotes sert à interpréter le contenu, avec des simples quotes le contenu n'est pas interpreté...

    C'est pour celà qu'il vaut mieux utiliser toujours des simples quotes s'il n'y a rien à interpreter (plus rapide)

    D'autre par, les carctères d'échapement ('\') nécessite eux aussi une interprétation, donc pour tout ce qui est \n \r \t etc... il faut des doubles quotes.

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

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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