Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-02-2009 14:16:42

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

[Résolu]Utiliser uniquement Zend_Db

Bonjour,
je souhaite utiliser les fonctions de Zend_Db pour mettre à jour ma base de donées mais je n'ai besoin de Zend QUE pour ça. J'ai regardé un peu à gauche à droite pour trouver de l'aide mais sans grand succès.
En fait mon architecture de dossier est totalement différente de celle conventionnelle de Zend framework donc je me demande si je peux utliser Zend_Db sans pour autant changer toute ma structure de dossier.

Pour en venir à mon problème, j'ai une classe qui a pour code (account.class.php) :

Code:

<?php
require_once '../library/Zend/Loader.php';
include '../library/Zend/Db.php';
require 'connectdb.class.php';

class account extends Zend_Db 
{
    
    public function UsersConnect()
    {
         $a = new Connexion();
         $db = $a->getAdapter();
             // Pour une Connexion Zend DB, on peut ecrire cela :
         $liste =  $db->fetchAll('SELECT * FROM Users');
         foreach ($liste as $elt) 
         {
            var_dump($elt);
         }
        
    }
    


    // Le fonction AddCount() permet d'ajouter un compte dans la BDD
    public function AddCount()
    {
        $rows = array(
            'nom'=>'Simpson',
            'prenom'=>'Bart',
            'type'=>'a',
            'login'=>'login',
            'password'=>'password',
            'telephone'=>'071512369',
            'gsm'=>'0475236589',
            'email'=>'homer@simpson.com',
            'codepostal'=>'45789',
            'ville'=>'Springfield',
            'rue'=>'742, Evergreen Terasse',
            'pays'=>'Belgique',
            'born'=>'01011901',);
        $table = 'Users';
        $affectedRows = $this->db->insert($table,$rows);
        $idInsere = $this->db->lastInsertId();
    }
    


}
?>

Pour me connecter à la base de donnée, je me sers d'un code trouvé sur internet qui est le suivant (connectdb.class.php) :

Code:

<?php
//require_once ('Zend/Db.php');
require_once '../library/Zend/Loader.php';

require_once '../library/Zend/Db.php';


/** 
 * Classe Connexion
 *
 * Cette classe réalise une Connexion à la Base de Données
 * @author 
 * @version 
 * 
 */

class Connexion {
    
    /**
     * Connexion Base de Données
     * @access private
     * @static 
     * @var Zend_DB
     */
    public static $_db;
    
    /**
     * Connexion à la Base de Données
     */

    public static function connect() {

            $params = array ("host" => "192.168.1.xxx", "dbname" => "xxx", "username" => "xxx", "password" => "xxx"); 
            Connexion::$_db = Zend_Db::factory ( 'Pdo_Ibm', $params );
            //Connexion::$_db->setFetchMode ( Zend_Db::FETCH_OBJ );
            Zend_Db_Table::setDefaultAdapter($db);
    }
    
    /**
     *  Constructeur de la classe Connexion
     *
     */
    public function __construct() {

        // Si mon connecteur n'est pas défini alors  on  crée la connexion
        if (Connexion::$_db == NULL) {
            Connexion::connect ( );
        }
    }
    
    /**
     * Retourne l'Adaptateur de la Base de Données
     *
     * @return Zend_DB
     */
    
    public function getAdapter() {
        if (Connexion::$_db !== NULL) {
            return Connexion::$_db;
        } else {
            return false;
        }
    }

}

Merci à qui peut m'aider
wink


PS: J'avais oublié de donner le message d'erreur que je reçoit big_smile

Code:

Warning: require_once(../library/Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in /mnt/sdb1/www/xxx/classes/account.class.php on line 2

Fatal error: require_once() [function.require]: Failed opening required '../library/Zend/Loader.php' (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/sdb1/www/xxxs/classes/account.class.php on line 2

Dernière modification par abessems (25-02-2009 11:09:41)

Hors ligne

 

#2 19-02-2009 14:34:42

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu]Utiliser uniquement Zend_Db

Bonjour,

Ca ne pose aucun problème de n'utiliser que Zend_Db. Tu n'as absolument pas besoin d'utiliser l'organisation de répertoires "standard" (disons celle du MVC) du Zend Framework.

Sinon je ne comprends pas bien pourquoi ta classe account hérite de Zend_Db. Ca ne me paraît pas utile (et pas pertinent, elle ne jouent pas le même rôle).

Pour en revenir plus concrètement à ton problème, ça vient des inclusions qui ne fonctionnent pas (il ne trouve pas les fichiers). Pour résoudre ton problème, le plus simple est d'utiliser les include_path. Ajoute ça au début de ton fichier.

Code:

    set_include_path(
        "/le_répertoire_du_zf/library".PATH_SEPARATOR.
        get_include_path()
    );

Ensuite tu fais simplement

Code:

require_once ('Zend/Db.php');

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 19-02-2009 14:57:48

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

Re: [Résolu]Utiliser uniquement Zend_Db

Merci pour ta réponse, malheureusement je ne parviens pas à faire fonctionner l'ensemble de façon cohérente donc je préfère perdre un peu de temps à faire des requètes SQL plutôt que de comprendre la logique du programme.


Merci quand même wink

Hors ligne

 

#4 19-02-2009 17:40:15

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu]Utiliser uniquement Zend_Db

il n'y a aucune logique là
tu fait un require de Zend_Loader et le système te dit qu'il ne l'a pas

soit tu t'en sert et il te faut le mettre dans ton include pass soit tu l'utilise pas et tu ne le mets pas dans ton fichier de classe acount

A+JYT

Hors ligne

 

#5 20-02-2009 15:56:52

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

Re: [Résolu]Utiliser uniquement Zend_Db

Je me suis finalement ravisé, après avoir corrigé un problème de PATH. J'utilise Zend_Db pour intéragir avec ma base de donnée et cela fonctionne correctement.

J'espère ne plus être confronté à trop de problèmes mais j'espère compter sur vous si jamais cela venait à arriver.

Bonne journée wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages