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 :

Passer NULL à sprintf


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Passer NULL à sprintf
    Bonjour à tous,

    j'utilise sprintf pour formater mes requêtes SQL et je n'arrive pas à transmettre NULL à sprintf.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $nameMember = NULL;
     
    sprintf($queryUpdateMember, $nameMember, $memberId);
     
    $queryUpdateMember = "UPDATE member mem SET mem.mem_name = '%s' WHERE mem.mem_id = %d";
    Il m'affiche "UPDATE member mem SET mem.mem_name = '' WHERE mem.mem_id = 1"

    Il me met donc '' au lieu du NULL que je souhaite avoir.

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Bonjour,

    Met ton NULL entre quotes et ça fonctionnera.

    $nameMember = 'NULL';Tu obtiendras une requête de ce type : "UPDATE member mem SET mem.mem_name = 'NULL' WHERE mem.mem_id = 1"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Merci de ton aide.

    Mais ce n'est pas la chaîne de caractères 'NULL' que je souhaite insérer en base de données mais bien NULL. (car mon champ en BDD que je souhaite mettre à NULL n'est pas forcément une string, cela peut être un int).

    Mais bon peut être que cela n'est pas possible avec sprintf?

  4. #4
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Dans ce cas supprime les simples quote de ta requête pour indiquer que tu veux insérer NULL.

    Et si tu veux insérer une chaine de caractère, il faudra concaténer des quotes à ta variable avant de la passer dans le sprintf()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $nameMember = 'NULL';
    $queryUpdateMember = "UPDATE member mem SET mem.mem_name = %s WHERE mem.mem_id = %d";
     
    if (is_string($nameMember) && $nameMember != 'NULL') {
        $nameMember = "'" . $nameMember . "'";
    }
     
    sprintf($queryUpdateMember, $nameMember, $memberId);
    Après je sais pas si il y a plus simple.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Sa marche! C'est pas super sexy mais au moins c'est fonctionnel. Je te remercie

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/12/2008, 10h04
  2. Réponses: 2
    Dernier message: 16/01/2008, 13h11
  3. passer une requete ajout avec des enregitrement null
    Par LesLemmings dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 13/06/2006, 15h20
  4. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52
  5. Alter column => passer de NOT NULL à NULL
    Par JohnGT dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/10/2003, 11h16

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