Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-04-2010 11:33:25

enzostar
Membre
Date d'inscription: 14-01-2010
Messages: 88

supprimer un enregistrement

Bonjour, dans une classe qui étend Zend_Dd_Table_abstract,
je souhaite supprimer des enregistrements avec une clause where.
J'utilise la méthode

Code:

$this->delete($where)

Cependant ma clause where fait planter la requête.
J'ai bien regardé la documentation en ligne ils disent que la méthode delete() accepte 2 paramètre:
-le premier est le nom de la table
-le second étant la clause SQL
Malgré plusieurs tentatives, je n'y parviens pas.

Merci pour votre aide.

Hors ligne

 

#2 22-04-2010 11:58:07

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: supprimer un enregistrement

comme tu dis, il y a deux arguments et la clause where est le second. dans ton exemple de code, tu met juste where qui passe comme premier argument et donc il prend la place du nom de la table. C'est donc normal que tu ai une erreur.

Hors ligne

 

#3 22-04-2010 13:51:04

enzostar
Membre
Date d'inscription: 14-01-2010
Messages: 88

Re: supprimer un enregistrement

voici ma classe avec la fonction supprime ou je respecte la syntaxe enfin je pense)

Code:

class Default_Model_DbTable_Dossier extends Zend_Db_Table_Abstract
{

    protected $_name    = 'DOSSIER';
    protected $_primary = 'Dossier_Id';
    protected $_dependentTables = array('DEMANDE');

    public function supprimeDossier($id)
    {
        $this->delete('DOSSIER','Dossier_Id='.$id);

    }

}

et voilà le message d'erreur

Code:

Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'DOSSIER' in 'where clause'

Hors ligne

 

#4 22-04-2010 13:59:30

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: supprimer un enregistrement

Tu confond la méthode delete de Zend_Db_Adapter_Abstract

Code:

    /**
     * Deletes table rows based on a WHERE clause.
     *
     * @param  mixed        $table The table to update.
     * @param  mixed        $where DELETE WHERE clause(s).
     * @return int          The number of affected rows.
     */
    public function delete($table, $where = '')

et celle de Zend_Db_Table Abstract

Code:

    /**
     * Deletes existing rows.
     *
     * @param  array|string $where SQL WHERE clause(s).
     * @return int          The number of rows deleted.
     */
    public function delete($where)

Dans la première deux paramètre la table et la clause
Dans la seconde un paramètre la clause

A+JYT

Hors ligne

 

#5 22-04-2010 14:09:24

enzostar
Membre
Date d'inscription: 14-01-2010
Messages: 88

Re: supprimer un enregistrement

absolument....Merci pour l'éclairage !

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