Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-12-2008 22:00:01

Gilles
Nouveau membre
Date d'inscription: 26-12-2008
Messages: 2

[Résolu] Zend_Db : lastInsertId() problem.

Hi smile I'm new to this community, so I introduce myself. My name is Gilles, i'm from Belgium, and I have 21 years old.
I'm currently studying ZF for a school project.

I have a problem with the lastInsertId().



Fatal error: Call to undefined method User::lastInsertId() in C:\xampp\htdocs\talkies\application\models\signup.php on line 56


The db connection is done with my main controller.

$configMain = new Zend_Config_Ini('app.ini', APP_MODE);
$db = Zend_Db::factory($configMain->database);
$db->getConnection();



The function "newUser" is in a class:



class User extends Zend_Db_Table_Abstract

{
    protected $_name = 'talk_user';
}

public function newUser($name, $surname, $email, $password, $gen, $desc)
                        {
                                   $utilisateurs = new User;
                                   $data = array(

                                                                       'nom' => $name,

                                                                       'prenom' => $surname,

                                                                       'mail' => $email,

                                                                       'photo' => $gen,

                                                                       'motdepasse' => $password,

                                                                       'desc' => $desc

);

                                   $utilisateurs->insert($data);

                                   $lastId = $utilisateurs->lastInsertId();

                       

                        }



No problem about inserting data's.



So, I tried to retreive my ID by another way : "SELECT MAX(id) FROM talk_user"



$result = $utilisateurs->fetchAll('SELECT MAX(id) FROM talk_user LIMIT 0,1');
|->ZF returns me an array with ALL the contents from the table "talk_user". Not just the ID I expected.

If I try with fetchOne or fetchAssoc I got the same message as above : 

Fatal error: Call to undefined method User::fetchOne() in C:\xampp\htdocs\talkies\application\models\signup.php on line 57



Does anyone have an idea ?

Thank you for your help smile

Gilles.

Dernière modification par Gilles (27-12-2008 16:43:16)

Hors ligne

 

#2 27-12-2008 00:10:54

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Zend_Db : lastInsertId() problem.

Hello,

Essayes/Try :

Code:

$lastId = $utilisateurs->insert($data);

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 27-12-2008 13:32:58

vg33
Membre
Date d'inscription: 30-07-2008
Messages: 46

Re: [Résolu] Zend_Db : lastInsertId() problem.

insert() de Zend_Db_Table renvoie le nombre d'enregistrements affectés (1 normalement).
lastInsertId() est une méthode de l'adaptateur :

Code:

$lastId = $utilisateur->getAdapter()->lastInsertId();

Voir la doc.

Hors ligne

 

#4 27-12-2008 16:42:45

Gilles
Nouveau membre
Date d'inscription: 26-12-2008
Messages: 2

Re: [Résolu] Zend_Db : lastInsertId() problem.

Merci à vous deux ! Le problème est résolu !

Hors ligne

 

#5 27-12-2008 23:14:41

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Zend_Db : lastInsertId() problem.

Hello,

@vg33 :

Code:

    /**
     * Inserts a new row.
     *
     * @param  array  $data  Column-value pairs.
     * @return mixed         The primary key of the row inserted.
     */
    public function insert(array $data)

T'as pas du la lire en entier wink

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 28-12-2008 00:15:29

vg33
Membre
Date d'inscription: 30-07-2008
Messages: 46

Re: [Résolu] Zend_Db : lastInsertId() problem.

Autant pour moi.
C'est l'adaptateur qui renvoie le nombre d'enregistrements affectés par insert().
En revanche, comme souvent, le fait que Zend_Db_Table::insert() renvoie l'id n'est pas documenté.

Hors ligne

 

#7 28-12-2008 10:35:51

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Zend_Db : lastInsertId() problem.

Hello,

J'ai ajouté une issue sur ce sujet (http://framework.zend.com/issues/browse/ZF-5362). Je tacherais de la résoudre pour la prochaine version.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#8 28-12-2008 19:12:38

vg33
Membre
Date d'inscription: 30-07-2008
Messages: 46

Re: [Résolu] Zend_Db : lastInsertId() problem.

OK, et merci beaucoup pour ton travail !

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