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;