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

PHP & Base de données Discussion :

Insérer la valeur NULL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 40
    Points : 28
    Points
    28
    Par défaut Insérer la valeur NULL
    Salut tatouss !

    Voilà je rencontre un problème auquel je ne croyais pas faire face :
    J'ai une table MySQL appelée "maTable", qui contient un champ "monChamp" (concernant les noms, avant de dire "Houah l'autre hé !! il s'est pas foulé pour les noms !" je précise que ce n'est que pour l'exemple ;-).

    Je souhaiterais insérer dans ce champ la valeur NULL...
    Vous allez me dire : "bah faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO maTable (monChamp) VALUES (NULL)");
    ", et peut-être ajouterez-vous un "abruti va !" à la fin...

    Certes, cela fonctionne. En revanche, si je fais ceci, ça ne fonctionne plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $valeur = NULL;
    mysql_query("INSERT INTO maTable (monChamp) VALUES ('$valeur')");

    En effet, MySQL ,ne prendra pas en compte ma valeur NULL avec ce dernier exemple, et se contentera de mettre les valeurs du champ par défaut. Crotte de bique !

    Comment dois-je donc procéder, sachant que tout ce qui se trouve dans VALUES() sera des variables PHP (et non des valeurs écrites en "dur") ?

    Merci d'avance pour vos réponses, j'offre un séjour en Thalasso à celui qui trouvera une solution.

    @ bientôt !
    Seb


    PS : Bon OK, pour la Thalasso, j'ai menti...

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 420
    Points : 15 789
    Points
    15 789
    Par défaut
    il suffit de construire ta requête comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (!isset($valeur)) {
        $reqInsert = 'NULL';
    } else {
        $reqInsert = '\'' . mysql_real_escape_string($valeur) . '\'';
    }
     
    $requete = "INSERT INTO maTable (monChamp) VALUES ($reqInsert)";
    et la suite est là. (pour 4 personnes, merci )

    par contre je te déconseille d'utiliser "NULL" comme valeur SQL dan ton application, tu peux avoir des problèmes dans l'organisation de ta base de données

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Salut Mathieu et merci pour ta réponse.
    Je vais tester cela, il n'y a pas de raison que ça pose encore problème !

    Pour la Thalasso, je suis désolé que tu n'aies pas vu mon PS à la fin de mon message

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

Discussions similaires

  1. Insérer la valeur NULL dans une colonne de type number
    Par cocoaparis dans le forum PL/SQL
    Réponses: 8
    Dernier message: 08/07/2009, 15h46
  2. insérer la valeur null dans une colonne
    Par loic20h28 dans le forum C#
    Réponses: 12
    Dernier message: 27/05/2009, 11h21
  3. [ZF 1.7] Insérer une valeure null dans champ ?
    Par kaboume dans le forum Zend_Db
    Réponses: 1
    Dernier message: 26/01/2009, 11h23
  4. Réponses: 5
    Dernier message: 11/07/2008, 08h37
  5. [Oracle 9i] Insérer une valeur NULL
    Par gogolak dans le forum Oracle
    Réponses: 3
    Dernier message: 21/04/2006, 14h39

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