Bonjour tout le monde,
Je dois mettre en place un plugin WordPress pour la gestion de vente de billets pour des événements comme projet dans mon école. Je ne maîtrise pas très bien le PHP et je n'y connais rien à WordPress.
J'essaie de créer des tables lors de l'activation de mon plugin.
J'ai donc la fonction register_activation_hook() qui me lance ma fonction :
Malheureusement cela ne me génère que les trois premières tables. Mon fichier de log m'affiche ceci :
Code : 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 // Création des tables public static function BaTi_install_DB() { global $wpdb; // Table client $wpdb->query("CREATE TABLE IF NOT EXISTS {$wpdb->prefix}BaTi_tblClient ( cliId INT UNSIGNED NOT NULL AUTO_INCREMENT, cliNom VARCHAR(45) NOT NULL, cliPrenom VARCHAR(45) NOT NULL, cliPassword VARCHAR(60) NOT NULL, cliMail VARCHAR(45) NOT NULL, PRIMARY KEY (cliId), CONSTRAINT UNIQUE Unique_Password (cliPassword) ) ENGINE=INNODB DEFAULT CHARSET=utf8;"); // table type de billets $wpdb->query("CREATE TABLE IF NOT EXISTS {$wpdb->prefix}BaTi_tblTypeBillet ( tybiId INT UNSIGNED NOT NULL AUTO_INCREMENT, tybiNom VARCHAR(45) NOT NULL, tybiPrix DOUBLE NOT NULL, PRIMARY KEY (tybiId), CONSTRAINT UNIQUE Unique_Nom (tybiNom) ) ENGINE=INNODB DEFAULT CHARSET=utf8;"); // table événement $wpdb->query("CREATE TABLE IF NOT EXISTS {$wpdb->prefix}BaTi_tblEvent ( eveId INT UNSIGNED NOT NULL AUTO_INCREMENT, eveNom VARCHAR(45) NOT NULL, PRIMARY KEY (eveId), CONSTRAINT UNIQUE Unique_Nom (eveNom) ) ENGINE=INNODB DEFAULT CHARSET=utf8;"); // table Commande $wpdb->query("CREATE TABLE IF NOT EXISTS {$wpdb->prefix}BaTi_tblCommande ( comId INT UNSIGNED NOT NULL AUTO_INCREMENT, BaTi_tblClient_cliId INT UNSIGNED NOT NULL, comDate DATE NOT NULL, comMontantTotal DOUBLE NOT NULL, PRIMARY KEY (comId), KEY BaTi_tblClient_cliId_FK(BaTi_tblClient_cliId), CONSTRAINT BaTi_tblClient_cliId_FK FOREIGN KEY (BaTi_tblClient_cliId) REFERENCES BaTi_tblClient(cliId) ) ENGINE=INNODB;"); // table billet $wpdb->query("CREATE TABLE IF NOT EXISTS {$wpdb->prefix}BaTi_tblBillet ( bilId INT UNSIGNED NOT NULL AUTO_INCREMENT, BaTi_tblCommande_comId INT UNSIGNED NOT NULL, BaTi_tblTypeBillet_tybiId INT UNSIGNED NOT NULL, BaTi_tblEvent_eveId INT UNSIGNED NOT NULL, bilCodeBarre INT NOT NULL, bilPDF VARCHAR(255), PRIMARY KEY (bilId), KEY BaTi_tblCommande_comId_FK (BaTi_tblCommande_comId), CONSTRAINT BaTi_tblCommande_comId_FK FOREIGN KEY (BaTi_tblCommande_comId) REFERENCES BaTi_tblCommande(_comId), KEY BaTi_tblTypeBillet_tybiId_FK (BaTi_tblTypeBillet_tybiId), CONSTRAINT BaTi_tblTypeBillet_tybiId_FK FOREIGN KEY (BaTi_tblTypeBillet_tybiId) REFERENCES BaTi_tblTypeBillet(tybiId), KEY BaTi_tblEvent_eveId_FK (BaTi_tblEvent_eveId), CONSTRAINT BaTi_tblEvent_eveId_FK FOREIGN KEY (BaTi_tblEvent_eveId) REFERENCES BaTi_tblEvent(eveId), CONSTRAINT UNIQUE Unique_CodeBarre (bilCodeBarre) ) ENGINE=INNODB DEFAULT CHARSET=utf8;"); } // END BaTi_install_DB
C'est donc une erreur 150 liée aux clés étrangères, mais je ne vois pas ma faute.
Code : 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 [29-Apr-2015 14:11:33 UTC] PHP Notice: has_cap est appelé avec un argument qui est <strong>déprécié</strong> depuis la version 2.0 ! L’utilisation des niveaux d’utilisateur par les extensions et thèmes est désormais interdite. Utiliser les rôles et capacités à la place. in N:\xampp\htdocs\JapanImpact\wp-includes\functions.php on line 3495 [29-Apr-2015 14:11:33 UTC] Erreur de la base de données WordPress Can't create table 'dbjapanimpact.ji_bati_tblcommande' (errno: 150) pour la requête CREATE TABLE IF NOT EXISTS JI_BaTi_tblCommande ( comId INT UNSIGNED NOT NULL AUTO_INCREMENT, BaTi_tblClient_cliId INT UNSIGNED NOT NULL, comDate DATE NOT NULL, comMontantTotal DOUBLE NOT NULL, PRIMARY KEY (comId), KEY BaTi_tblClient_cliId_FK(BaTi_tblClient_cliId), CONSTRAINT BaTi_tblClient_cliId_FK FOREIGN KEY (BaTi_tblClient_cliId) REFERENCES BaTi_tblClient(cliId) ) ENGINE=INNODB; faite par activate_plugin, do_action('activate_BasickTicketting/index.php'), call_user_func_array, BaTi_Install_Plugin::BaTi_install_DB [29-Apr-2015 14:11:33 UTC] Erreur de la base de données WordPress Can't create table 'dbjapanimpact.ji_bati_tblbillet' (errno: 150) pour la requête CREATE TABLE IF NOT EXISTS JI_BaTi_tblBillet ( bilId INT UNSIGNED NOT NULL AUTO_INCREMENT, BaTi_tblCommande_comId INT UNSIGNED NOT NULL, BaTi_tblTypeBillet_tybiId INT UNSIGNED NOT NULL, BaTi_tblEvent_eveId INT UNSIGNED NOT NULL, bilCodeBarre INT NOT NULL, bilPDF VARCHAR(255), PRIMARY KEY (bilId), KEY BaTi_tblCommande_comId_FK (BaTi_tblCommande_comId), CONSTRAINT BaTi_tblCommande_comId_FK FOREIGN KEY (BaTi_tblCommande_comId) REFERENCES BaTi_tblCommande(_comId), KEY BaTi_tblTypeBillet_tybiId_FK (BaTi_tblTypeBillet_tybiId), CONSTRAINT BaTi_tblTypeBillet_tybiId_FK FOREIGN KEY (BaTi_tblTypeBillet_tybiId) REFERENCES BaTi_tblTypeBillet(tybiId), KEY BaTi_tblEvent_eveId_FK (BaTi_tblEvent_eveId), CONSTRAINT BaTi_tblEvent_eveId_FK FOREIGN KEY (BaTi_tblEvent_eveId) REFERENCES BaTi_tblEvent(eveId), CONSTRAINT UNIQUE Unique_CodeBarre (bilCodeBarre) ) ENGINE=INNODB DEFAULT CHARSET=utf8; faite par activate_plugin, do_action('activate_BasickTicketting/index.php'), call_user_func_array, BaTi_Install_Plugin::BaTi_install_DB [29-Apr-2015 14:11:34 UTC] PHP Notice: has_cap est appelé avec un argument qui est <strong>déprécié</strong> depuis la version 2.0 ! L’utilisation des niveaux d’utilisateur par les extensions et thèmes est désormais interdite. Utiliser les rôles et capacités à la place. in N:\xampp\htdocs\JapanImpact\wp-includes\functions.php on line 3495 [29-Apr-2015 14:11:34 UTC] bla= [29-Apr-2015 14:11:34 UTC] bla=false [29-Apr-2015 14:11:35 UTC] bla=false [29-Apr-2015 14:11:35 UTC] bla=true [29-Apr-2015 14:11:35 UTC] PHP Notice: has_cap est appelé avec un argument qui est <strong>déprécié</strong> depuis la version 2.0 ! L’utilisation des niveaux d’utilisateur par les extensions et thèmes est désormais interdite. Utiliser les rôles et capacités à la place. in N:\xampp\htdocs\JapanImpact\wp-includes\functions.php on line 3495
Est-ce que quelqu'un aurait une solution?
Cordialement
Faboogy
Partager