Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un getter dans ma class News, lorsque j'utilise comme ci-dessous, un fetchRow ou FetchAll et lorsque je fais un print_r(), je m'aperçois que j'ai bien le row demandé mais pleins d'autres infos sur la table et la base de donnée, même le mot de passe de mysql y figure. Est ce normal ca ?
function getNews($id) { $select = $this->select() ->from($this->_name) ->where("news_id='".$id."' "); return $this->fetchRow($select); }
Je peux très bien utilisé à la place return $this->_db->fetchRow($select); mais du coup le resultat n'est plus un objet.
Hors ligne
Hello,
C'est normal. Une Zend_Db_Table_Row a une référence sur une Zend_Db_Table qui a une référence sur un Zend_Db_Adapter qui lui contient toutes les infos de connexion.
Quel est ton problème ? Tu n'est pas le seul à coder mais tu ne veux pas que les autres codeurs aient accès aux infos de connexion ? Tu n'est pas sensé faire de print_r() ou de var_dump() dans une application en production donc pas de risques.
A+
Hors ligne
Oui non mais c'est des informations, j'essaye toujours d'optimiser mon application, pour moi c'estr des données inutile, en plus si dans une meme page je fais appelle à plusieurs requetes j'aurai ces infos en double, je pense pas avoir besoin de tous ces infos en plus.
je vais rajoputer ca pour avoir un objet :
$this->_db->setFetchMode(Zend_Db::FETCH_OBJ);
Hors ligne
Hello,
Je me trompe peut-être mais ce sont des références pas des copies donc en terme de performance cela n'a pas d'impact.
Par contre le fait de faire un print_r() ou un var_dump() va effectivement entraîner le parcours de tous les objets.
A+
Hors ligne