IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

Problème avec DbAdapter [ZF 1.10]


Sujet :

Zend_Db PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut Problème avec DbAdapter
    Bonjour,

    J'ai essayé de mettre en place du code dans le but de pouvoir simplement accéder ma base de données de n'importe où. Le code suivant est inspiré de ce que j'ai trouvé sur le web (j'ai essayé un certain nombre de bouts de code sans succès):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini', 'production');
    Zend_Registry::set('config', $config);
    $dbAdapter = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($dbAdapter);
     
    $dbAdapter = Zend_Db::factory($config->resource->db->adapter, array(
        'host'     => $config->resource->db->params->host,
        'username' => $config->resource->db->params->username,
        'password' => $config->resource->db->params->password,
        'dbname'   => $config->resource->db->params->dbname
    ));
     
    $registry->set('dbAdapter', $dbAdapter );
    Voici l'erreur obtenue :
    'Notice: Trying to get property of non-object in' ...'public/index.php'

    Si vous avez une idée, ce serait sympa de la partager

    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Sur quelle ligne de ton code l'erreur pointe-t-elle ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut
    ah oui autant pour moi sur celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Peux tu s'il te plait nous montrer la strucutre de to fichier ini pour les infos de la BD.

    Et expliquer pourquoi tu utilise 2 fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory(...);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut
    Citation Envoyé par Billy14 Voir le message
    Peux tu s'il te plait nous montrer la strucutre de to fichier ini pour les infos de la BD.

    Et expliquer pourquoi tu utilise 2 fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory(...);
    euh .. garde le premier ^^

    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
    38
    39
    [production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    includePaths.library = APPLICATION_PATH "C:/wamp/bin/php/php5.3.0/PEAR"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 1
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
    ;resources.pluginClass = "Plugins_Connexion"
    ;resources.plugin_connexion = "true"
    resources.view[] =
    resources.db.adapter = "PDO_MYSQL"
    resources.db.params.host = "localhost"
    resources.db.params.username = "username"
    resources.db.params.password = "password"
    ;resources.db.params.dbname = APPLICATION_PATH "/../data/db/guestbook.db"
    resources.db.params.dbname = "mabase"
    resources.db.params.charset = "utf8"
     
    [staging : production]
     
    [testing : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.db.adapter = "PDO_MYSQL"
    ;resources.db.params.dbname = APPLICATION_PATH "/../data/db/guestbook-testing.db"
    resources.db.params.dbname = "mabase"
    resources.db.params.charset = "utf8"
     
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.frontController.params.displayExceptions = 1
    resources.db.adapter = "PDO_MYSQL"
    ;resources.db.params.dbname = APPLICATION_PATH "/../data/db/guestbook-dev.db"
    resources.db.params.dbname = "mabase"
    resources.db.params.charset = "utf8"
    Bien sûr j'ai pas mis les vrais mots de passe etc...mais voilà ma structure :p

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut
    c'est le mot config qui marche pas ...que ce soit dans le premier paramètre ou le deuxième

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Les paramêtres d'accès à ta base sont dans "resources.db.params" et non pas dans "db.config"

    Je pense qu'au lieu de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Il faut que tu fasse ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory($config->ressources->db->adapter, $config->ressources->db->params->toArray());
    Je t'informe par ailleurs que je début également sur Zend, donc je ne suis pas sur que cela soit ta solution. ^^

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut
    pffff en plus c'était évident ...je dors pas assez xD

    Merci bien ça marche ..du moins cette portion de code...je verrai moi-même pour le reste :p

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Ok, bon courage

    Un petit résolu ne fera pas de mal ^^

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut
    quoi que ...
    En fait, mon but principal, à l'origine, c'était de pouvoir faire une requête ressemblant à celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $select = $db->select()
                 ->from('products', array('product_id', 'product_name', 'price'))
                 ->where('price > 100.00');
    dans mon formulaire 'application/forms/Register.php' mais il reconnaît pas $db

    tu penses qu'il faut utiliser quelque chose comme ça ?
    $registry->set('dbAdapter', $dbAdapter );
    Après faut que je me renseigne comment créer ce $registry ...

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    Ben si tu insère $dbAdapter dans le registre avec comme nom "dbAdapter"
    Pour l'utiliser il faut que tu appelle $dbAdapter et non pas $db.

    Ca me semble logique

    Edit :
    Va voir ici pour Zend_registry, tu as un exemple d'utilisation.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 61
    Par défaut
    en fait c'était juste un exemple la ligne avec le registre ^^
    J'ai rapidement remplacé la ligne par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zend_Registry::set('db', $db );
    et quand j'essaie de récupérer la valeur dans mon formulaire 'Register.php' avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db=Zend_Registry::get('db');
    ...ça marche enfin j'ai l'impression...
    A+ pour de nouvelles aventures

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo