Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-04-2011 15:29:28

LeDuc08
Membre
Date d'inscription: 23-02-2009
Messages: 22

[resolu][Zend_Db][1.7. 4] Specified column "???" is not in the row

Bonjour,

Je cherche plus une explication qu'une solution.
Voila, j'ai une fonction qui m'ajoute une ligne dans une table.

Code:

[lang=php]
    public function saveNewFile($StiId)
    {
        $newFile = $this->createRow();
        $newFile->FIL_NAME             = $_POST['FIL_NAME'];
        $newFile->FIL_CREATION_DATE = date("Y-m-d");
        $newFile->FIL_EXTENSION        = $_POST['FIL_EXTENSION'];
        $newFile->FIL_CREATOR        = $_COOKIE["userLogin"];
        $newFile->STI_ID            = $StiId;
        $newFile->save();
        
        return $newFile->FIL_ID;        
    }

Tout fonctionne nickel.
Puis je me dit que j'aurais voulu ajouter également un champ taille (c'est une table de gestion de fichiers).

J'ajoute dans ma table mon FIL_SIZE (INT), puis j'ajoute une ligne à ma fonction:

Code:

[lang=php]
...
        $newFile->FIL_EXTENSION        = $_POST['FIL_EXTENSION'];
        $newFile->FIL_SIZE            = '20';
        $newFile->FIL_CREATOR        = $_COOKIE["userLogin"];

Et là j'obtiens une erreur:
"Zend_Db_Table_Row_Exception' with message 'Specified column "FIL_SIZE" is not in the row" !??!!

Par contre, si je fais mon save, puis que j'ajoute ma valeur au champs FIL_SIZE, là tout se passe correctement:

Code:

[lang=php]
    public function saveNewFile($StiId)
    {
        $newFile = $this->createRow();
        $newFile->FIL_NAME             = $_POST['FIL_NAME'];
        $newFile->FIL_CREATION_DATE = date("Y-m-d");
        $newFile->FIL_EXTENSION        = $_POST['FIL_EXTENSION'];
        $newFile->FIL_CREATOR        = $_COOKIE["userLogin"];
        $newFile->STI_ID            = $StiId;
        $newFile->save();
        
        $newFile->FIL_SIZE            = '20'; // Copy/paste de la ligne précédente...
        $newFile->save();

        return $newFile->FIL_ID;        
    }

Est-ce que quelqu'un peut m'expliquer ???

Dernière modification par LeDuc08 (12-04-2011 17:20:12)

Hors ligne

 

#2 07-04-2011 19:22:26

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu][Zend_Db][1.7. 4] Specified column "???" is not in the row

Bonjour,

Il semblerait que le champ FIL_SIZE n'existe pas dans la table en question dans la base de données.

Le save() va exécuter la requête sql, et donc mettre FIL_SIZE = ... si ce champ est assigné avant le save.

Dans le cas contraire, la sauvegarde de la ligne dans la BD se fait, mais pas celle du champ FIL_SIZE qui est juste assigné dans ton objet et donc n'existera plus dès lors que l'objet sera supprimé.

Hors ligne

 

#3 08-04-2011 09:09:06

LeDuc08
Membre
Date d'inscription: 23-02-2009
Messages: 22

Re: [resolu][Zend_Db][1.7. 4] Specified column "???" is not in the row

Bonjour Théocrite,

Merci pour la réponse.
Mais je ne saisi pas tout.

Sachant que la deuxième version du code fonctionne:
- Elle ne renvoie pas d'erreur
- Ma table, et surtout le champ FIL_SIZE est bien renseigné

Cela signifie bien que ma table et le champ FIL_SIZE existent et sont bien référencés.

D'après ce que je sais de l'adaptateur, dans la première version du code, il va faire un INSERT.
--> Celui-ci renvoi une erreur

Dans la seconde version; il fait l'INSERT puis pour le champ FIL_SIZE, il ne va faire q'un UPDATE. 

L'UPDATE fonctionne, mais pas l'INSERT, et c'est ça qui me chagrine, je voudrais comprendre pourquoi.

D'avance merci

Hors ligne

 

#4 12-04-2011 17:19:05

LeDuc08
Membre
Date d'inscription: 23-02-2009
Messages: 22

Re: [resolu][Zend_Db][1.7. 4] Specified column "???" is not in the row

Bonjour à tous,

J'allais relancer pour tordre le coup à cette petite bizarrerie, mais avant de poster, je suis retourné dans le code, et j'ai refais un copier coller inverse pour revenir à la version du code qui posait problème et...
Bien vous l'auriez devinez, cela fonctionne désormais avec l'ancien code. !?!

--> Je me demande si le fait de mettre des tabulations entre le nom du champ et le = pour clarifier le code ne m'a pas joué des tours.

Nous ne voyons pas d'autres explications ;-)

Dernière modification par LeDuc08 (12-04-2011 17:19:32)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages