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 :

pb chemin bdd [ZF 1.11]


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut pb chemin bdd
    Bonjour à tous,

    j'aimerais être sur de ma configuration avant de débugger mon code.
    J'ai un message "An error occured, error application"

    Je suis sur Windows XP avec un tortoise SVN et je commit sur un serveur debian.
    J'aimerais savoir le chemin de la bdd dans le fichier application.ini svp.

    le chemin de la bdd est /var/lib/mysql/WebMRL/
    si vous pouviez m'aider s'il vous plaît ?

    voici mon application.ini:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    resources.db.adapter = "PDO_MYSQL"
    resources.db.params.host = "adresse serveur"
    resources.db.params.username = "user"
    resources.db.params.password = "mdp"
    resources.db.params.dbname = APPLICATION_PATH "..../lib/mysql/WebMRL"
    merci d'avance de vos réponses.

    Cordialement,

  2. #2
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut
    Bonjour yoann92,

    Le chemin de la BD correspond au nom que tu as donné a ta BD dans ton SGBD (par exemple PhpMyAdmin).

    Si tu crées une table qui s'appelle db_mabdd dans PhpMyAdmin, il faudra que tu configures ton application comme suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    resources.db.adapter = "PDO_MYSQL"
    resources.db.params.host = "adresse serveur"
    resources.db.params.username = "user"
    resources.db.params.password = "mdp"
    resources.db.params.dbname = db_mabdd

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    Bonjour Njörd,

    merci beaucoup d'avoir répondu.

    Cela veut dire donc que le dbname c'est le nom de ma base.
    resources.db.params.dbname = "WebMRL"

    J'attendais que quelqu'un me le confirme .

    Ce la veut dire que j'ai un problème de code alors.

    Puis te poster mon code stp ?

    merci d'avance.

  4. #4
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut
    Oui, n'hésite pas à nous poster ton code et explique nous ton souci

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    Mais j'ai rien à faire de plus pour établir ma connexion à part mon fichier ini?
    merci d'avance.

    Cordialement,

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    C'est gentil Njörd, merci beaucoup .

    j'espère que cela sera clair.

    Dans mon model Db_Table j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class Application_Model_DbTable_Service extends Zend_Db_Table_Abstract
    {
        protected $_nametable = 'service';
    }
    Dans mon model Service j'ai :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
     
    class Application_Model_Service
    {
    		protected $_id;
            protected $_name;
            protected $_link_description;
            protected $_enable;
     
     
    		protected $_mapper;
     
    		public function __construct(array $options = null)
            {
                if (is_array($options)) {
                    $this->setOptions($options);
                }
            }
     
            //cette méthode permet d'appeler n'importe quel settor en fonction
            //des arguments
            public function __set($nametable, $value)
            {
                $method = 'set' . $nametable;
                if (('mapper' == $nametable) || !method_exists($this, $method)) {
                    throw new Exception('Invalid service property');
                }
                $this->$method($value);
            }
     
            //cette méthode permet d'appeler n'importe quel gettor en fonction
            //du nom passé en argument
            public function __get($nametable)
            {
                $method = 'get' . $nametable;
                if (('mapper' == $nametable) || !method_exists($this, $method)) {
                    throw new Exception('Invalid service property');
                }
                return $this->$method();
            }
     
            //permet de gérer un tableau d'options passé en argument au constructeur
            //ce tabelau d'options peut contenir la valeur des champs à utiliser
            //pour l'initialisation de l'objet
            public function setOptions(array $options)
            {
                $methods = get_class_methods($this);
                foreach ($options as $key => $value) {
                    $method = 'set' . ucfirst($key);
                    if (in_array($method, $methods)) {
                        $this->$method($value);
                    }
                }
                return $this;
            }
     
    		//gettors and settors d'accès aux variables
            public function setIdservice($idservice)
            {
                $this->_id = (int)$idservice;
                return $this;
            }
     
            public function getIdservice()
            {
                return $this->_id;
            }
     
            public function setName($name)
            {
                $this->_name = (string)$name;
                return $this;
            }
            public function getName()
            {
                return $this->_name;
            }
     
            public function setLink_description($link_description)
            {
                $this->_link_description = (string)$link_description;
                return $this;
            }
            public function getLink_description()
            {
                return $this->_link_description;
            }
     
            public function setEnable($enable)
            {
                $this->_enable = (string)$enable;
                return $this;
            }
            public function getEnable()
            {
                return $this->_enable;
            }
     
    		public function setMapper($mapper)
            {
                $this->_mapper = $mapper;
                return $this;
            }
            public function getMapper()
            {
                //si la valeur $_mapper n'est pas initialisée, on l'initialise (
                if(null === $this->_mapper){
                    $this->setMapper(new Application_Model_ServiceMapper());
                }
     
                return $this->_mapper;
            }
     
            //méthodes de classe utilisant les méthodes du mapper
            //crée ou met à jour une entrée dans la table
            public function save()
            {
                $this->getMapper()->save($this);
            }
     
            //récupère une entrée particulière
            public function find($idservice)
            {
                $this->getMapper()->find($idservice, $this);
                return $this;
            }
     
            //récupère toutes les entrées de la table
            public function fetchAll()
            {
                return $this->getMapper()->fetchAll();
            }
     
            //permet la suppression
            public function delete($idservice)
            {
                $this->getMapper()->delete($idservice);
            }
     
    }
    Et dans mon Model ServiceMapper j'ai :


    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
     
    class Application_Model_ServiceMapper
    {
    		protected $_dbTable;
     
            //settor
            public function setDbTable($dbTable)
            {
                if (is_string($dbTable)) {
                    $dbTable = new $dbTable();
                }
                if (!$dbTable instanceof Zend_Db_Table_Abstract) {
                    throw new Exception('Invalid table data gateway provided');
                }
                $this->_dbTable = $dbTable;
                return $this;
            }
     
            //guettor
            public function getDbTable()
            {
                if (null === $this->_dbTable) {
                    $this->setDbTable('Application_Model_DbTable_Service');
                }
                return $this->_dbTable;
            }
     
    		public function save(Application_Model_Service $service)
            {
                //récupération dans un tableau des données de l'objet $service
                //les noms des clés du tableau correspondent aux noms des champs de la table
                $data = array(
                   'name' => $service->getName(),
                   'link_description' => $service->getLink_description(),
                   'enable' => $service->getEnable(),
                );
    			//on vérifie si un l'objet $service contient un id
                //si ce n'est pas le cas, il s'agit d'un nouvel enregistrement
                //sinon, c'est une mise à jour d'une entrée à effectuer
                if(null === ($idservice = $service->getIdservice()))
                {
                    unset($data['id']);
                    $this->getDbTable()->insert($data);
                }
                else
                {
                    $this->getDbTable()->update($data, array('id = ?' =>     $idservice));
                }
            }
     
    		//récupére une entrée dans la table
            public function find($idservice, Application_Model_Service $service)
            {
                $result = $this->getDbTable()->find($idservice);
                if (0 == count($result)) {
                    return;
                }
     
                //initialisation de la variable $row avec l'entrée récupérée
                $row = $result->current();
     
                //setting des valeurs dans notre objet $service passé en argument
                $service->setIdservice($row->id);
                $service->setName($row->name);
                $service->setLink_description($row->link_description);
                $service->setEnable($row->enable);
            }
     
    		//récupére toutes les entrées de la table
            public function fetchAll()
            {
                //récupération dans la variable $resultSet de toutes les entrées de notre table
                $resultSet = $this->getDbTable()->fetchAll();
     
                //chaque entrée est représentée par un objet Application_Model_Service
                //qui est ajouté dans un tableau
                $entries = array();
                foreach($resultSet as $row)
                {
                    $entry = new Application_Model_Service();
                    $entry->setIdservice($row->id);
                    $entry->setName($row->name);
                    $entry->setLink_description($row->link_description);
                    $entry->setEnable($row->enable);
     
                    $entries[] = $entry;
                }
     
                return $entries;
            }
     
    		//permet de supprimer un utilisateur,
        //reçoit la condition de suppression (le plus souvent basé sur l'id)
        public function delete($idservice)
        {
            $result = $this->getDbTable()->delete($idservice);
        }
    }
    Merci infiniment de jeter un coup d'oeil, je débute en zend, et j'ai une réelle envie de progresser vite et bien.

    Cordialement,

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Par défaut
    En fait le soucis c'est An error occurred Application error

    C'est assez vague donc c'est vraiment chiant au possible.

    Merci d'avance.

  8. #8
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut
    Je vais look tout ça.

    Mais concrètement, qu'est-ce qui ne fonctionne pas ? Tu cherche à faire quoi ? Tu as des messages d'erreur à poster ? (pour les activer ==> dans le config/application.ini passe les trois premières lignes avec un zéro à 1).

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

Discussions similaires

  1. enregistrer un chemin dans une BDD MySQL
    Par Sargon dans le forum C#
    Réponses: 11
    Dernier message: 23/08/2007, 11h59
  2. Réponses: 9
    Dernier message: 02/06/2007, 15h42
  3. Chemin BDD Firebird
    Par akli_agha dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/04/2007, 08h41
  4. Réponses: 3
    Dernier message: 31/05/2006, 11h43
  5. Récupérer le chemin du fichier d'une bdd
    Par [DreaMs] dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/04/2006, 16h58

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