Bonjour,
Dans la doc de Zend Framework, je trouve ce petit bout de code pour faire les requêtes proprement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  1. $rows = $table->fetchAll(
  2. $table->select()
  3. ->where('bug_status = :status')
  4. ->bind(array(':status'=>'NEW')
  5. ->order('bug_id ASC')
  6. ->limit(10, 0)
  7. );
J'essaie avec mon appli :
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;
Le méchant Zend me répond :
Fatal error: Uncaught exception 'Zend_Db_Select_Exception' with message 'Unrecognized method 'bind()'' in /usr/share/php/Zend/Db/Select.php
J'ai un peu cherché dans les programmes de Zend_Db mais je n'ai effectivement pas trouvé de fonction appelée strictement "bind".

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 ?