Problème lors de l'installation d'un composant, la base de donnée génére une erreur

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Problème lors de l'installation d'un composant, la base de donnée génére une erreur

    Bonjour,

    Je suis sous WAMP en serveur local avec :

    MySQL: 5.5.20
    PHP: 5.3.10
    Apache: 2.2.21.

    Quand j'essaie d'installer mon composant sur un joomla "test", la base de donnée créer cette erreur:
    JInstaller: :Install: erreur SQL Fonction DB échouée avec le numéro d'erreur 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' `temps` INT(6) NOT NULL DEFAULT '0', CONSTRAINT pk_operation PRIMARY KE' at line 3 SQL=CREATE TABLE IF NOT EXISTS `rwcbs_interim_operation` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `libelle` VARCHAR(20) NOT NULL DEFAULT, `temps` INT(6) NOT NULL DEFAULT '0', CONSTRAINT pk_operation PRIMARY KEY (`id`) ) CHARSET=utf8;
    SQL =
    CREATE TABLE IF NOT EXISTS `#__interim_operation` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `libelle` VARCHAR(20) NOT NULL DEFAULT,
    `temps` INT(6) NOT NULL DEFAULT '0',
    CONSTRAINT pk_operation PRIMARY KEY (`id`)
    ) CHARSET=utf8;
    Installation d'un composant : erreur SQL du fichier Fonction DB échouée avec le numéro d'erreur 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' `temps` INT(6) NOT NULL DEFAULT '0', CONSTRAINT pk_operation PRIMARY KE' at line 3 SQL=CREATE TABLE IF NOT EXISTS `rwcbs_interim_operation` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `libelle` VARCHAR(20) NOT NULL DEFAULT, `temps` INT(6) NOT NULL DEFAULT '0', CONSTRAINT pk_operation PRIMARY KEY (`id`) ) CHARSET=utf8;
    SQL =
    CREATE TABLE IF NOT EXISTS `#__interim_operation` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `libelle` VARCHAR(20) NOT NULL DEFAULT,
    `temps` INT(6) NOT NULL DEFAULT '0',
    CONSTRAINT pk_operation PRIMARY KEY (`id`)
    ) CHARSET=utf8;
    Pourtant, je me suis inspirer d'autre composant, donc notament ceux déjà installer sur mon joomla.

    J'ai aussi créer des clé étrangère:
    Code:
    	CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `#__interim_operation` (`id`) ON DELETE CASCADE
    A votre avis d'où vient le problème, sachant que j'ai déjà essayer:
    D'enlever les quotes,
    De mettre ENGINE et même TYPE...
    Dernière édition par Nenidd à 14/01/2014, 14h16

  • #2
    Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

    Bonjour,

    Il y a des erreurs dans le SQL
    Code:
    `libelle`	 VARCHAR(20)	 NOT NULL DEFAULT, `temps`	 INT(6)	 NOT NULL DEFAULT '0',
    `libelle` VARCHAR(20) NOT NULL DEFAULT est illégal si aucune valeur par défaut n'est donnée
    Code:
    `libelle`	 VARCHAR(20)	 NOT NULL DEFAULT '',
    serait valide.

    Bon après avoir mis à jours MySQL : 5.6.12
    Je n'ai plus accès à ma base de donnée...
    Même en accès direct en console ou via phpMyAdmin ?

    Si c'est le cas, il est fort probable qu'après la mise à jour de version, la commande (en ligne de commande ou console) mysql_upgrade n'ait pas été exécutée, ni mysql_fix_extensions.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

      Merci je vais essayer de renvoyer des valeurs par défault alors!

      Et pour l'install, en fait c'était plus moi le problème dans l'affaire, après une vérif, la base de donnée du site "test" avait tout simplement disparut et les identifiants dans le fichier configuration.php aussi! J'en ai profiter pour refaire une install vite fait toute propre et sa remarche comme sur des roulettes!

      Commentaire


      • #4
        Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

        Code:
        CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `#__interim_operation` (`id`) ON DELETE CASCADE
        la colonne idOperation n'existe pas, et donc ne peut être une KEY quelconque.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

          Même problème avec ma dernière table:

          CREATE TABLE IF NOT EXISTS `#__interim_demande` (
          `id` INT(11) NOT NULL AUTO_INCREMENT,
          `idHotel` INT(11) NOT NULL,
          `idOperation INT(11) NOT NULL,
          `date` DATE NOT NULL DEFAULT '0000-00-00',
          `reponseDemande` INT(11) NOT NULL DEFAULT '1',
          `quantite` INT(3) NULL,
          `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
          `created_by` INTEGER UNSIGNED NOT NULL DEFAULT '0',
          CONSTRAINT pk_demande PRIMARY KEY (`id`, `idHotel`, `idOperation`, `date`, `reponseDemande`),
          CONSTRAINT fk_hotel FOREIGN KEY (`idHotel`) REFERENCES `#__interim_hotel` (`id`) ON DELETE CASCADE,
          CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `#__interim_operation` (`id`) ON DELETE CASCADE
          ) DEFAULT CHARSET=utf8;
          Une idée? J'ai mis des valeurs à tout les défaults.

          Commentaire


          • #6
            Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

            Je m'en suis rendu compte et j'ai rajouter mon champ dans ma table, du coup l'erreur est passé en 1064 à la ligne 4.
            Dernière édition par Nenidd à 14/01/2014, 12h24

            Commentaire


            • #7
              Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

              CONSTRAINT pk_demande PRIMARY KEY (`id`, `idHotel`, `idOperation`, `date`, `reponseDemande`),
              C'est soit une CONSTRAINT soit une PRIMARY KEY, mais ça ne peut être les 2 !

              Il me semble que tu devrais faire du RTFM dans la documentation MySQL
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                C'est justement en fouillant dans la doc que je suis tomber sur ça, du coup j'ai essayée les constraint... Mais mais deux premières tables sont passée avec sans problème...

                Commentaire


                • #9
                  Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                  Après essaye sans constraint, j'ai toujours le même problème:
                  Code:
                  JInstaller: :Install: erreur SQL Fonction DB échouée avec le numéro d'erreur 1064 
                  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`	 DATE	 NOT NULL DEFAULT '0000-00-00', `reponseDemande`	INT(11)	 NOT NUL' at line 4 SQL=CREATE TABLE IF NOT EXISTS `tcsbk_interim_demande` ( `id`	 INT(11)	 NOT NULL AUTO_INCREMENT, `idHotel`	 INT(11)	 NOT NULL, `idOperation	 INT(11)	 NOT NULL, `date`	 DATE	 NOT NULL DEFAULT '0000-00-00', `reponseDemande` INT(11)	 NOT NULL DEFAULT '1', `quantite`	 INT(3)	 NULL, `modified` DATETIME	 NOT NULL DEFAULT '0000-00-00 00:00:00', `created_by`	 INTEGER UNSIGNED	NOT NULL DEFAULT '0', PRIMARY KEY	(`id`, `idHotel`, `idOperation`, `date`, `reponseDemande`), CONSTRAINT fk_hotel FOREIGN KEY (`idHotel`) REFERENCES `tcsbk_interim_hotel` (`id`) ON DELETE CASCADE, CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `tcsbk_interim_operation` (`id`) ON DELETE CASCADE ) DEFAULT CHARSET=utf8;
                  SQL =
                  CREATE TABLE IF NOT EXISTS `#__interim_demande` (
                  	`id`				INT(11)				NOT NULL AUTO_INCREMENT,
                  	`idHotel`			INT(11)				NOT NULL,
                  	`idOperation		INT(11)				NOT NULL,
                  	`date`				DATE				NOT NULL DEFAULT '0000-00-00',
                  	`reponseDemande`	INT(11)				NOT NULL DEFAULT '1',
                  	`quantite`			INT(3)				NULL,
                  	`modified` 			DATETIME			NOT NULL DEFAULT '0000-00-00 00:00:00',
                  	`created_by`		INTEGER UNSIGNED	NOT NULL DEFAULT '0',
                  	PRIMARY KEY	(`id`, `idHotel`, `idOperation`, `date`, `reponseDemande`),
                  	CONSTRAINT fk_hotel FOREIGN KEY (`idHotel`) REFERENCES `#__interim_hotel` (`id`) ON DELETE CASCADE,
                  	CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `#__interim_operation` (`id`) ON DELETE CASCADE
                  ) DEFAULT CHARSET=utf8;
                  Installation d'un composant : erreur SQL du fichier Fonction DB échouée avec le numéro d'erreur 1064 
                  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`	 DATE	 NOT NULL DEFAULT '0000-00-00', `reponseDemande`	INT(11)	 NOT NUL' at line 4 SQL=CREATE TABLE IF NOT EXISTS `tcsbk_interim_demande` ( `id`	 INT(11)	 NOT NULL AUTO_INCREMENT, `idHotel`	 INT(11)	 NOT NULL, `idOperation	 INT(11)	 NOT NULL, `date`	 DATE	 NOT NULL DEFAULT '0000-00-00', `reponseDemande` INT(11)	 NOT NULL DEFAULT '1', `quantite`	 INT(3)	 NULL, `modified` DATETIME	 NOT NULL DEFAULT '0000-00-00 00:00:00', `created_by`	 INTEGER UNSIGNED	NOT NULL DEFAULT '0', PRIMARY KEY	(`id`, `idHotel`, `idOperation`, `date`, `reponseDemande`), CONSTRAINT fk_hotel FOREIGN KEY (`idHotel`) REFERENCES `tcsbk_interim_hotel` (`id`) ON DELETE CASCADE, CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `tcsbk_interim_operation` (`id`) ON DELETE CASCADE ) DEFAULT CHARSET=utf8;
                  SQL =
                  CREATE TABLE IF NOT EXISTS `#__interim_demande` (
                  	`id`				INT(11)				NOT NULL AUTO_INCREMENT,
                  	`idHotel`			INT(11)				NOT NULL,
                  	`idOperation		INT(11)				NOT NULL,
                  	`date`				DATE				NOT NULL DEFAULT '0000-00-00',
                  	`reponseDemande`	INT(11)				NOT NULL DEFAULT '1',
                  	`quantite`			INT(3)				NULL,
                  	`modified` 			DATETIME			NOT NULL DEFAULT '0000-00-00 00:00:00',
                  	`created_by`		INTEGER UNSIGNED	NOT NULL DEFAULT '0',
                  	PRIMARY KEY	(`id`, `idHotel`, `idOperation`, `date`, `reponseDemande`),
                  	CONSTRAINT fk_hotel FOREIGN KEY (`idHotel`) REFERENCES `#__interim_hotel` (`id`) ON DELETE CASCADE,
                  	CONSTRAINT fk_operation FOREIGN KEY (`idOperation`) REFERENCES `#__interim_operation` (`id`) ON DELETE CASCADE
                  ) DEFAULT CHARSET=utf8;

                  Commentaire


                  • #10
                    Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                    Une CONSTRAINT ne doit être utilisée que et uniquement pour des références vers des tables foreign (donc FOREIGN KEYS), mais jamais pour déclarer un index.

                    le mot clé PRIMARY KEY dans une déclaration de création de table indique qu'il s'agit de la clé primaire de la table, qui ne peut en aucun cas être une FOREIGN KEY.

                    Certaines versions de MySQL (un peu bugguées) permettaient l'usage de CONSTRAINT sur une PRIMARY KEY, mais le tir a été rectifié depuis, cette déclaration en fonctionnant pas si on configure le serveur MySQL pour fonctionner mode ISO STRICT.
                    Pas de demande de support par MP.
                    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                    Commentaire


                    • #11
                      Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                      `idOperation INT(11) NOT NULL,
                      Là, l'erreur est encore plus flagrante, il manqu ele backtick sur le nom du champ.
                      `idOperation est invalide, idOperation` est invalide, `idOperation` est valide, idOperation est valide.
                      Le backtick sert à autoriser des mots clés SQL, par exemple date qui est un type de données et en forcer la reconnaissance comme nom de champ.

                      Je sais, je suis peut-être très à cheval sur la compatibilité ISO pure du SQL, mais au moins, quand tout est conforme, même la portabilité vers d'autres SGBD devient plus simple et évidente.
                      Dernière édition par jisse03 à 14/01/2014, 12h52
                      Pas de demande de support par MP.
                      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                      Commentaire


                      • #12
                        Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                        Imaginons que j'enléve le constraint (ce que je vais faire tout de suite), le problème de la troisième table c'est quoi?
                        Dernière édition par Nenidd à 14/01/2014, 14h14

                        Commentaire


                        • #13
                          Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                          Vu, merci j'avais pas remarquer qu'il manquer une quote, et ne t'en fait pas si je demande de l'aide c'est bien pour que quelqu'un voit les fautes que je ne voit pas!

                          Commentaire


                          • #14
                            Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                            le problème de la troisième table c'est quoi?
                            Voir réponse précédente. SQL est un langage extrêmement pointilleux sur la syntaxe.

                            Si je comprends, je ne peut pas avoir idHotel en fk et pk?
                            Tu peux très bien avoir le même champ participant à ta PK et référençant une FOREIGN KEY.

                            Si c'est ça comment je peut du coup récupéré mes variable qui me serve à savoir de qu'elle demande on parle?
                            L'utilisation des FOREIGN KEYS est destinée à automatiser des actions (par exemple supprimer en cascade les enregistrements particuliers dans une table dont les enregistrements dépendent de l'existence même de la table maîtresse.

                            Dans de nombreux autres cas, l'utilisation de views (voir CREATE VIEW) est bien plus performante quand il s'agit de récupérer en une seule requête des résultats dépendants de plusieurs tables.

                            En d'autres termes, les FOREIGN KEYS sont là pour gérer les problèmes d'intégrité référentielle, mais ne particpent aucunement à la logique des requêtes.
                            Pas de demande de support par MP.
                            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                            Commentaire


                            • #15
                              Re : Problème lors de l'installation d'un composant, la base de donnée génére une err

                              Merci je me situe mieux, c'est mon premier vrai composant et malgrè que je suive un livre et des tutos des fois c'est bien plus abstrait que sa en a l'air, surtout qu'en on est habituer à Oracle et presque rien d'autre!

                              Je passe maintenant à des problèmes de programmation pure, et je sens qu'il me reste de longues heures de débuggage devant moi. Mais comme je l'ai lu plusieurs sur ce forum, on a tous commencer un jours !

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X