Bonjour,

J'ai paramétré la valeur par défaut d'une colonne create_date à CURRENT_TIMESTAMP avec ma version MySQL locale 5.5.57 mais ceci ne marche pas avec la version 5.5 en ligne chez 1&1 IONOS.
Je dois donc insérer la date de création. Malheureusement ceci me provoque une erreur MySQL

J'ai fait l'essai suivant en local:
Cette requête fonctionne (à condition de supprimer la date dans $toSave):
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
$query = "
	INSERT IGNORE INTO dat_users (
		login, gender, lastname, firstname, mail, pw, token
	)
	VALUES (
		:login, :gender, :lastname, :firstname, :mail, :pw, :token
	)
;";
$result = $db->prepare($query);
$result->execute($toSave);
Mais la suivante provoque bizarrement une erreur Erreur: 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' à la ligne 88.'. Bizarrement parce que le nombre et l'écriture des paramètres sont corrects est correspondent dans la bdd, dans la requête ainsi que dans la clef et la valeur de $toSave.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
$query = "
	INSERT IGNORE INTO dat_users (
		login, gender, lastname, firstname, mail, pw, token, create_date
	)
	VALUES (
		:login, :gender, :lastname, :firstname, :mail, :pw, :token, create_date
	)
;";
Voici enfin la définition de ma table:
Code sql : 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
CREATE TABLE IF NOT EXISTS `dat_users` (
  `id` int(10) UNSIGNED NOT NULL,
  `login` varchar(15) NOT NULL,
  `gender` char(1) DEFAULT NULL,
  `lastname` varchar(30) DEFAULT NULL,
  `firstname` varchar(30) DEFAULT NULL,
  `mail` varchar(60) NOT NULL,
  `pw` varchar(255) NOT NULL,
  `token` varchar(6) DEFAULT NULL,
  `checked` tinyint(1) NOT NULL,
  `banned` tinyint(1) DEFAULT NULL,
  `create_date` datetime NOT NULL,
  `update_date` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `webmaster` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;