Bonjour,
Dans la doc de Zend Framework, je trouve ce petit bout de code pour faire les requêtes proprement :
J'essaie avec mon appli :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
- $rows = $table->fetchAll(
- $table->select()
- ->where('bug_status = :status')
- ->bind(array(':status'=>'NEW')
- ->order('bug_id ASC')
- ->limit(10, 0)
- );
Le méchant Zend me répond :
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
29
30
31
32
33
34
35
36
37 // Recherche de la personne saisie $personne = new Personne(); $select = $personne ->select(); $select ->setIntegrityCheck(false) ->from(array('p' => 'T_Personne_PRS'), 'COUNT(*)'); $where = 'p.PRS_Nom = :nom AND p.PRS_Prenom = :prenom '; if ($service_emetteur != '0') { // L'émetteur a choisi son service dans la liste déroulante $service = intval($service_emetteur); $where .= 'AND p.PRS_Id_Service = :service '; } else { // L'émetteur a saisi le nom de son service $select->join(array('s' => 'T_Service_SRV'), 's.SRV_Id = p.PRS_Id_Service ', array() ); $service = $form->getValue('service'); $where .= 'AND s.SRV_Nom = :service '; } // Fin du else de if ($service_emetteur != '0') $select ->where($where) ->bind (array( ':nom' => $nom_emetteur, ':prenom' => $prenom_emetteur, ':service' => $service) ); $sql = $select->__toString(); echo $sql; echo 'nom : '.$nom_emetteur; echo '<br />prénom : '.$prenom_emetteur; echo '<br />service : '.$service; exit;
J'ai un peu cherché dans les programmes de Zend_Db mais je n'ai effectivement pas trouvé de fonction appelée strictement "bind".Fatal error: Uncaught exception 'Zend_Db_Select_Exception' with message 'Unrecognized method 'bind()'' in /usr/share/php/Zend/Db/Select.php
C'est apparu après la version 1.7 ou c'est moi qui l'utilise mal ?
Si ce n'est pas dispo, comment faire ça proprement en version 1.7 ?
Partager