Bonjour,
Je découvre actuellement le zend framework ainsi que ses exceptions.
Voici ma classe de modèle que j'essaye de mettre en place.
Je tiens à dire que je me suis inspiré du tutorial http://www.kitpages.fr/zf_tutorial.html pour les choses qui vont suivre.
C'est une classe qui
avec toute les constantes définies dans index.php (à la racine).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 require_once('Zend/Db.php'); class ModeleMateriel { private function getZendDb() { $params = array( 'host' => DB_SERVER , 'username' => DB_USER , 'password' => DB_PASSWORD , 'dbname' => DB_NAME ); return Zend_Db::factory(DB_TYPE,$params); } public function selectionUnite() { $db = $this->getZendDb(); $select = $db->select(); $select->from("t_unite"); return $db->fetchAll($select); } }
J'utilise SQL server 7. Et pour moi DB_TYPE est définie par "pdo_mssql".
J'ai par ailleur chargé dans wamp5 les exetenssions :
php_mssql , php_pdo , php_pdo_mssql
j'utilise php 5.2 , zend framework 0.9.2 beta , sql server 7.
dans mon controller j'utilise la classe comme ça :
Mais quelque chose se passe mal car j'ai l'exception suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 require_once('models/ModeleMateriel.php'); class AjouterMaterielController extends Zend_Controller_Action { public function init() { //On initialise ici, si necessaire. } public function ajouterMaterielAction() { echo "dans AjouterMaterielController::ajouterMaterielAction()<br/>"; $modele_materiel = new ModeleMateriel(); $all = $modele_materiel->selectionUnite(); foreach($all as $colonne) echo $colonne["id_unite"] . ' ' . $colonne["code_unite"] . ' ' . $colonne["libelle_unite"]; } }
J'espère que quelqu'un pourra m'aider car je ne vois vraiment pas comment résoudre le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[HY000]: General error: 10007 Ligne 2 : Syntaxe incorrecte vers '.'. [10007] (severity 5) [(null)]' in C:\wamp\www\library\Zend\Db\Adapter\Pdo\Abstract.php:177 Stack trace: #0 C:\wamp\www\library\Zend\Db\Adapter\Abstract.php(331): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Select), Array) #1 C:\wamp\www\visite\mvc\models\ModeleMateriel.php(31): Zend_Db_Adapter_Abstract->fetchAll(Object(Zend_Db_Select)) #2 C:\wamp\www\visite\mvc\controllers\AjouterMaterielController.php(17): ModeleMateriel->selectionUnite() #3 C:\wamp\www\library\Zend\Controller\Action.php(501): AjouterMaterielController->ajouterMaterielAction() #4 C:\wamp\www\library\Zend\Controller\Dispatcher\Standard.php(214): Zend_Controller_Action->dispatch('ajoutermateriel...') #5 C:\wamp\www\library\Zend\Controller\Front.php(753): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #6 C:\wamp\www\visite\inde in C:\wamp\www\library\Zend\Db\Adapter\Pdo\Abstract.php on line 177
Partager