Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-01-2009 11:27:50

romain
Membre
Date d'inscription: 20-01-2009
Messages: 18

[Résolu][PB connection Oracle]

Bonjour all,

Comme beaucoup je debute sous zend , et les ressources en langue francaise sont encore limiter ,j'ai donc  beaucoup de mal à resoudre mes problemes.

je travail sous :

- php 5.2  //php version
- oci8.so  // lib oracle

Je n'ai pas la main sur le server pour modifier ma structure  , genre passer sous pdo_oci.so etc etc
j'ai deja realisé quelque programme en php5 sans framework juste avec des classes de bdd perso

Et la on a decidé de passer sous zend framework donc je realise mon premier programme.
je plante depuis hier sur l'abstraction de donnée. probleme de connection à ma base de donnée:

mon erreur :

Code:

Exception information:

Message: 12154 ORA-12154: TNS:could not resolve the connect identifier specified *

mon app.ini

Code:

[production]
database.adapter = "oracle"
database.params.host = "192.168.xxx.xxx"
database.params.username = "xxx"
database.params.password = "xxx"
database.params.dbname = "FRxx"
database.params.options.caseFolding  = 2
database.params.options.autoQuoteIdentifiers = 0

[development : production]
database.adapter = "oracle"
database.params.host =  "192.168.xxx.xxx"
database.params.username = "xxx"
database.params.password = "xxx"
database.params.dbname = "FRxx"
database.params.options.caseFolding  = 2
database.params.options.autoQuoteIdentifiers = 0

[testing : production]
database.adapter = "oracle"
database.params.host =  "192.168.xxx.xxx"
database.params.username = "xxx"
database.params.password =" xxx"
database.params.dbname = "FRxx"
database.params.options.caseFolding  = 2
database.params.options.autoQuoteIdentifiers = 0

mon bootstrap

Code:

<?php

defined('APPLICATION_PATH')
    or define('APPLICATION_PATH', dirname(__FILE__));

defined('APPLICATION_ENVIRONMENT')
    or define('APPLICATION_ENVIRONMENT', 'development');


$frontController = Zend_Controller_Front::getInstance();
$frontController->setControllerDirectory(APPLICATION_PATH . '/controllers');
$frontController->setParam('env', APPLICATION_ENVIRONMENT);

Zend_Layout::startMvc(APPLICATION_PATH . '/layouts/scripts');

$view = Zend_Layout::getMvcInstance()->getView();
$view->doctype('XHTML1_STRICT');


$configuration = new Zend_Config_Ini(APPLICATION_PATH . '/config/app.ini', APPLICATION_ENVIRONMENT);

$dbAdapter = Zend_Db::factory($configuration->database);

Zend_Db_Table_Abstract::setDefaultAdapter($dbAdapter);

$registry = Zend_Registry::getInstance();
$registry->configuration = $configuration;
$registry->dbAdapter     = $dbAdapter;

unset($frontController, $view, $configuration, $dbAdapter, $registry);

j'ai peux etre oublié quelque chose de tres simple je sais pas sad
si des lumieres pouvent eclairer mon chemin smile

Dernière modification par romain (22-01-2009 11:16:55)

Hors ligne

 

#2 20-01-2009 11:41:58

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu][PB connection Oracle]

Hello,

Il faut définir une variable d'environnement TNS_ADMIN qui indique le chemin vers ton fichier tnsnames.ora.

Ensuite il faut s'assurer que ce fichier est correctement défini.

A+

Dernière modification par mikaelkael (20-01-2009 11:42:57)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 20-01-2009 13:15:59

romain
Membre
Date d'inscription: 20-01-2009
Messages: 18

Re: [Résolu][PB connection Oracle]

Merci pour ta reponse

j'ai d'autres questions :

est - il possible de ce connecter sans passer par cette variable d'environnement TNS_ADMIN

en dure dans le code peux etre ?

Hors ligne

 

#4 20-01-2009 13:20:37

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu][PB connection Oracle]

Hello,

Oui si tu as oracle database server et que tnsnames.ora est dans ${ORACLE_HOME}/networl/admin.

Autre possibilité : tu étends Zend_Db_Adapter_Oracle et tu changes la méthode _connect() pour fonctionner sans tnsnames.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 20-01-2009 14:57:35

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

Re: [Résolu][PB connection Oracle]

ou jdbc

Hors ligne

 

#6 22-01-2009 10:48:34

romain
Membre
Date d'inscription: 20-01-2009
Messages: 18

Re: [Résolu][PB connection Oracle]

Bon , ce fut une misére , mais j'ai trouver une solution

J'ai crée un fichier tnsnames.ora avec ma chaine de connection , j'ai jamais reussit à la faire fonctionner !
avec la bonne variable d'environement qui va bien et tout

Pour info j'utilise l'instant client d'oracle sur mon srv linux et donc j'expose ma solution pour les futurs bloquer comme moi ^^

En faite j'ai mis ma chaine de connection dans mon app.ini sur dbname.
c'est peux etre une bidouille mais ca permet d'avancer smile


Code:

[development : production]
database.adapter = "oracle"
database.params.host = "192.168.xxx.xxx"
database.params.username = "xxx"
database.params.password = "xxx"
database.params.dbname = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx) (PORT = 1521)))(CONNECT_DATA =(SID = FRxxx)))"
database.params.options.caseFolding  = 2
database.params.options.autoQuoteIdentifiers = 0

merci pour votre aide
a bientot smile

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