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

 MySQL Discussion :

Affecter NULL (ou FALSE) à un booléen


Sujet :

MySQL

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 406
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut Affecter NULL (ou FALSE) à un booléen
    Bonjour,
    j'ai écrit le script de test suivant :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    $SESAID=27384;
    $application_key=1;
    $CURRENTLYACTIVE=NULL;
    $ACTIVATEDATE="2019-06-12";
    $DEACTIVATEDATE="2020-06-12";
     
     
    $ppi = new PDOPlusPlus(PDOPlusPlus::MODE_SQL_DIRECT); // utilisation d'une classe qui fournit tous les accès à PDO
    $pdo  = $ppi->pdo();   // $pdo est la ressource PDO
     
    $values = [
        'sesa'        => (int)($SESAID),
        'application_key'      => (int)($application_key),
        'CURRENTLYACTIVE' => (bool)($CURRENTLYACTIVE),
        'ACTIVATEDATE'      => $pdo->quote($ACTIVATEDATE),
        'DEACTIVATEDATE'    => $pdo->quote($DEACTIVATEDATE)
    ];
     
    $sql_insert = "INSERT into `license` (sesa, application_key, currently_active, activate_date, deactivate_date) VALUES
    (".implode(', ', $values).")";
    var_dump($sql_insert);
    $pdo->exec($sql_insert);
    Mon souci : le var_dump donne INSERT into `license` (sesa, application_key, currently_active, activate_date, deactivate_date) VALUES (27384, 1, , '2019-06-12', '2020-06-12') et le message d'erreur est :
    Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ', '2019-06-12', '2020-06-12')' à la ligne 2 in C:\wamp64\www\ppp\testppp.php:50 Stack trace: #0 C:\wamp64\www\ppp\testppp.php(50): PDO->exec('INSERT into `li...') #1 {main} thrown in C:\wamp64\www\ppp\testppp.php on line 50
    Pas étonnant vu que la colonne currently_active reçoit une valeur vide. Comment faire SVP ?

    Pour info, la DDL de la table est :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DROP TABLE IF EXISTS `license`;
    CREATE TABLE IF NOT EXISTS `license` (
      `sesa` int(6) NOT NULL,
      `application_key` smallint(2) NOT NULL,
      `currently_active` tinyint(1) DEFAULT NULL,
      `activate_date` date DEFAULT NULL,
      `deactivate_date` date DEFAULT NULL,
      PRIMARY KEY (`sesa`,`application_key`) USING BTREE,
      KEY `fk_application` (`application_key`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 406
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut
    La solution trouvée : 'CURRENTLYACTIVE' => empty($CURRENTLYACTIVE)?0:(bool)($CURRENTLYACTIVE)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 083
    Points : 30 841
    Points
    30 841
    Par défaut
    Donc ce n'était pas un problème de SQL mais de PHP
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. affecter null a un champ
    Par dz_bill dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/09/2009, 08h41
  2. Affecter "NULL" apres formule matricielle
    Par Triton972 dans le forum Excel
    Réponses: 1
    Dernier message: 12/02/2009, 17h58
  3. affecter null dans feuille excel
    Par assiya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/07/2008, 14h47
  4. transformer tout les Null en false
    Par tortuegenie dans le forum Administration
    Réponses: 2
    Dernier message: 05/05/2008, 23h28
  5. Affecter NULL a une date
    Par Maxi-môme dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/09/2007, 11h11

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