Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Db
Zend_Db Forum d'entraide pour le composant Zend_Db du Zend Framework (création de requêtes, abstraction, ORM etc.). Avant de poster -> FAQ Zend_Db.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 12h57   #1
Invité régulier
 
Homme Damien
Etudiant
Inscription : juillet 2008
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Damien
Localisation : France

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : juillet 2008
Messages : 37
Points : 9
Points : 9
Par défaut Enregistrement en DB

Bonjour,

j'ai un gros problème.

J'utilise ZF depuis un bon petit moment, mais j'ai toujours utilisé le PDO Mysql. Or, pour un projet scolaire, je suis "obligé" d'utiliser SQL_SERVER.

j'ai un crash dans ma methode "save()" qui est dans une classe "table" qui se trouve entre mes model & Zend_Db_Table_Abstract ( monModel extends table extends Zend_Db_Table_Abstract )

Code :
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
 
/**
  	 * Update / Insert into db
  	 *
  	 * @param array $data, if $data is null, will insert 
  	 * @return number the key value (id) of the saved object or false if error 
  	 */
  	public function save($data = null)
  	{
            if ($data === null)
            {
                $data = $this->toArray();
            }
 
            $db = $this->getAdapter() ;
            $data = $this->_cleanData($data);
            reset($this->_primary) ;
            $primary = is_array($this->_primary) ? current($this->_primary) : $this->_primary ;
 
            $id = 0 ;
 
            if (array_key_exists($primary, $data) && $data[$primary])
            {
                if(is_array($this->_primary) && count($this->_primary) > 1)
                        $id = array_intersect_key($data, array_flip($this->_primary)) ;
                else
                        $id = $data[$primary] ;
 
                $db = $this->getAdapter();
                $where = array() ;
                foreach($this->_primary as $key)
                {
                    if(array_key_exists($key, $data) && $data[$key])
                    {
                        array_push($where, $db->quoteInto($key . ' = ?', $data[$key])) ;
                        unset($data[$key]);
                    }
                }
 
                $this->update($data, $where);
            }
            else
            {
                    if (array_key_exists($primary, $data))
                            unset($data[$primary]);
 
                    $id = $this->insert($data);
            }
 
            return $id;
  	}

Cette fonction marche très bien sous MySql mais je ne peux rien enregistré sous SQL_SERVER

si quelqu'un peu m'aider .

merci d'avance !
madd63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 16h46   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Tu pourrais préciser ce qui se passe ?
  • Message d'erreur
  • Comportement différent de celui attendu
  • Rien ne se passe
  • ...
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h27   #3
Invité régulier
 
Homme Damien
Etudiant
Inscription : juillet 2008
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Damien
Localisation : France

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : juillet 2008
Messages : 37
Points : 9
Points : 9
Désolé de t'avoir dérangé, l'erreur était ailleur ( problème de clé primaire dans la base ... )


Merci quand meme !
madd63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h53.


 
 
 
 
Partenaires

Hébergement Web