Bonjour,
j'utilise l'excellente classe de rawsrc pour manager ma bdd (https://www.developpez.net/forums/bl...dutiliser-pdo/). Mon problème est que j'obtiens une erreur fatale :En gros, mon INSERT n'est pas accepté à cause d'une clé étrangère. Mon souci est que comme j'utilise la classe PDOPlusPlus, le var_dump de la requête SQL donneFatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails etc
Mais ceci n'est pas testable dans PHMyadmin. Comme la seule clé étrangère porte sur la colonne application_key, j'ai fait un var_dump de cette colonne et la valeur existe dans la table application et son type est identique dans les 2 tables (smallint(2)). Avez-vous une idée de comment je peux déboguer ça ?string(172) "INSERT into `license` (sesa, application_key, currently_active, activate_date, deactivate_date) VALUES (:QzFSIK9754, :FkWAlO3349, :LWEAvl7880, :OPdfXl3032, :QtVMSO2629) "
Les DDLs sont :
table `license` :
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 DROP TABLE IF EXISTS `license`; CREATE TABLE `license` ( `sesa` int(6) NOT NULL, `application_key` smallint(2) DEFAULT NULL, `currently_active` tinyint(1) DEFAULT NULL, `activate_date` date DEFAULT NULL, `deactivate_date` date DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ALTER TABLE `license` ADD PRIMARY KEY (`sesa`); ALTER TABLE `license` ADD CONSTRAINT `fk_application` FOREIGN KEY (`application_key`) REFERENCES `application` (`application_key`);
et table `application` :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DROP TABLE IF EXISTS `application`; CREATE TABLE `application` ( `application_key` smallint(2) NOT NULL, `application_name` varchar(30) COLLATE utf8_bin NOT NULL DEFAULT '', `platform` varchar(30) COLLATE utf8_bin DEFAULT NULL, `platform_owner` varchar(30) COLLATE utf8_bin DEFAULT NULL, `publisher` varchar(30) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ALTER TABLE `application` ADD PRIMARY KEY (`application_key`), ADD UNIQUE KEY `UK_appli_name` (`application_name`);
Partager