Magazine Internet

Zend et les requêtes SQL chainées en PHP

Publié le 11 septembre 2008 par Dator

Avec le Zend Framework, nous pouvons évidemment gérer les requêtes et les transactions SQL . Mais ce qui est pratique avec ce framework, c’est la façon de gérer cela.

Au lieu d’écrire la requête brut de pomme, comme normalement avec PHP, nous pouvons utiliser un objet qui va préparer la requêtes SQL à exécuter.

Tout d’abords commençons par réaliser le modèle. Un modèle (en orienté objet) correspond à un élément dans la base de donnée. Par exemple, nous avons une table users dans notre base de donnée, le modèle correspondant est alors une classe User qui correspond à un enregistrement dans la base de donnée.

class User extends Zend_Db_Table
{
   protected $primary = "user_id";

    public function __construct($userId)
    {
        // On prépare ici la requête SQL et on ne l'exécute pas
        $select = $this -> select() -> from('users',array('user_id','lastname','firstname'))
        -> where('user_id = ? ',$userId)
        -> where('actif = 1');
        /*
          Comme vous pouvez le voir, on chaine les appels avec PHP et donc on creer
          notre requête SQL à partir des méthode de la classe.
          Correspondance SQL :

          SELECT id, lastname, firstname FROM users WHERE user_id = ? AND actif = 1
         */

          // et ensuite on exécute la requête SQL
          $result = $this -> fetchRow($select);
    }
}

Bien évidemment, nous pouvons géré les clause JOIN, OR WHERE , ORDER et plein de petit plus à voir ici.
En plus, comme je vous l’ai montré, plus besoin d’échapper les caractère pour éviter les injections SQL vu que le code PHP de Zend le fait tout seul.

Je vous conseille d’utiliser cette méthode qui est vraiment très pratique pour de courtes requêtes SQL.

Article original écrit par Clément JOBEILI et publié sur Dator Blog | © Dator.fr - 2008


Retour à La Une de Logo Paperblog

A propos de l’auteur


Dator 51 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte