Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour.
Je débute avec ZF et j'ai un soucis pour accéder à ma base de données.
Dans mon bootstrap j'ai ceci :
$params = array ( 'host' => 'localhost', 'username' => 'root', 'password' => 'mdp', 'dbname' => 'mabase' ); try { $db = Zend_Db::factory('PDO_MYSQL', $params); $db->getConnection(); } catch (Zend_Db_Adapter_Exception $e) { echo $e->getMessage(); }
Tout se passe bien, des messages d'erreurs si je me trompe dans le nom de la base, ou dans le mot de passe, et rien si tout est juste.
Par contre, j'ai une class toute simple :
<?php class Users extends Zend_Db_Table_Abstract { protected $_name = 'users'; } ?>
Ma table users existant dans ma base de données.
Dans un de mes controllers, si je fais ça :
$plop = new Users();
J'ai un message d'erreur :
Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for Users' in C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Db\Table\Abstract.php:549 Stack trace: #0 C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Db\Table\Abstract.php(532): Zend_Db_Table_Abstract->_setupDatabaseAdapter() #1 C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Db\Table\Abstract.php(269): Zend_Db_Table_Abstract->_setup() #2 C:\xampp\htdocs\mon_site\application\modules\admin\controllers\LoginController.php(14): Zend_Db_Table_Abstract->__construct() #3 C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Controller\Action.php(502): admin_LoginController->indexAction() #4 C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php(293): Zend_Controller_Action->dispatch('indexAction') #5 C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Controller\Front.php(91 in C:\xampp\htdocs\mon_site\library\ZendFramework\library\Zend\Db\Table\Abstract.php on line 549
J'ai retourné le problème dans tous les sens. J'utilise xampp, j'ai une base de données tout ce qu'il y a de plus simple, et je tourne en rond car je suis incapable de comprendre la raison de cette erreur.
Si quelqu'un a une idée.
Merci d'avance.
Dernière modification par neojick (25-04-2008 12:23:08)
Hors ligne
Il te manque
Zend_Db_Table::setDefaultAdapter($db);
Quand tu initialise la connexion (met ça dans ton try catch) tu dois prévvenir que cette adaptateur est à utilisé pour le reste. Car tu pourrais très bien avoir plusieurs bases de données et donc utiliser plusieurs adaptateurs (qu'il faudrait préciser lors de l'instanciation des tables)
Hors ligne
C'est tout simplement parfait ! Merci beaucoup, 3 jours que je bloque là dessus, et j'ai longtemps hésité à poser cette question ici.
Une fois de plus, merci à la communauté de ce site.
Hors ligne