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 :

sprintf avec une valeur en entrée pour plusieurs remplacements [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 252
    Points : 312
    Points
    312
    Par défaut sprintf avec une valeur en entrée pour plusieurs remplacements
    Bonjour,

    J'ai une chaîne qui doit recevoir la même valeur plusieurs fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select * from matable where %s=1 or %s=4 or %s=6 or %s=8 or %s=9"
    %s n'est qu'une seule et même chaîne.
    Est-il possible de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf( $sql, "toto");
    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut

    comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = 'select * from matable where %1$s=1 or %1$s=4 or %1$s=6 or %1$s=8 or %1$s=9';
    $sql = sprintf($sql, 'toto');

  3. #3
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 252
    Points : 312
    Points
    312
    Par défaut
    Merci de ta réponse.

    Attention cependant au signe $ qui est interprété comme une variable et auquel il faut ajouter un \

  4. #4
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Citation Envoyé par Amélie Ladoque Voir le message
    Attention cependant au signe $ qui est interprété comme une variable et auquel il faut ajouter un \
    En fait dans le code de rawsrc il utilise des simple quotes, donc il a pas besoin d'échappement, et c'est plus simple à lire...

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    L'interprétation du signe $ dépend des guillemets.
    Si c'est des simples ' ce n'est pas interprété, et si c'est des doubles " alors oui il faut échapper le caractère $.

    Mais quand t'utilises sprintf(), l'utilité de mettre des guillemets doubles est inexistante, vu que justement cette fonction te permet d'injecter tout en formatant des valeurs dans une chaîne.

    Dans mon bout de code, j'avais bien mis des guillemets simples ' autour de la chaîne

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/10/2013, 15h44
  2. Réponses: 2
    Dernier message: 28/11/2012, 18h36
  3. Réponses: 6
    Dernier message: 31/01/2012, 18h38
  4. Réponses: 6
    Dernier message: 11/10/2011, 17h23
  5. une entrée pour plusieurs enregistrement
    Par mindar dans le forum Modélisation
    Réponses: 2
    Dernier message: 08/06/2007, 09h47

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