Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

roger_php

Conexão com Oracle dá erro

Recommended Posts

Caros estou tentando conectar com o Oracle 9i, estou usando Zend 1.5, mas dá a seguinte mensagem de erro:

 

 

Notice: Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS' in C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db.php on line 247

 

Fatal error: Uncaught exception 'Zend_Db_Adapter_Oracle_Exception' with message 'The OCI8 extension is required for this adapter but the extension is not loaded' in C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Adapter\Oracle.php:102 Stack trace: #0 C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Adapter\Abstract.php(743): Zend_Db_Adapter_Oracle->_connect() #1 C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Adapter\Abstract.php(813): Zend_Db_Adapter_Abstract->quote('C_UF', NULL) #2 C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Adapter\Oracle.php(299): Zend_Db_Adapter_Abstract->quoteInto('UPPER(TC.TABLE_...', 'C_UF') #3 C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Table\Abstract.php(605): Zend_Db_Adapter_Oracle->describeTable('C_UF', 'SIARCOWEB') #4 C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Table\Abstract.php(534): Zend_Db_Table_Abstract->_setupMetadata() #5 C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Table\Abstract.php(269): Zend_Db_Table_Abstract->_setup() #6 C:\Services\AppServ\www\SIARCOWEB\app\controllers\IndexCont in C:\Services\AppServ\www\SIARCOWEB\lib\Zend\Db\Adapter\Oracle.php on line 102

 

 

Alguém sabe como proceder para corrigir esse bug???

Compartilhar este post


Link para o post
Compartilhar em outros sites

'The OCI8 extension is required for this adapter but the extension is not loaded'

 

Ele está dizendo que a extensão para Oracle 8 é necessária para usar o adaptador pra Ora8 mas esta estensão não está carregada.

 

Verifique a lista das extensões carregadas:

$exts = print_r(get_loaded_extensions(), true);
echo "<pre>".$exts."</pre>";

Se ela não estiver lá você precisará:

- verificar se o arquivo .dll referente está no diretório 'ext/' na path do PHP. Se não estiver você terá que baixar esta extensão.

- alterar o arquivo php.ini carregando a extensão.

 

A extensão está carregada?

 

Ref.:get_loaded_extensions()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara fiz e deu assim:

 

Array ( [0] => bcmath [1] => calendar [2] => com_dotnet [3] => ctype [4] => session [5] => filter [6] => ftp [7] => hash [8] => iconv [9] => json [10] => odbc [11] => pcre [12] => Reflection [13] => date [14] => libxml [15] => standard [16] => tokenizer [17] => zlib [18] => SimpleXML [19] => dom [20] => SPL [21] => wddx [22] => xml [23] => xmlreader [24] => xmlwriter [25] => apache2handler [26] => pgsql [27] => mssql [28] => PDO [29] => PDO_Firebird [30] => pdo_mssql [31] => pdo_mysql [32] => PDO_OCI [33] => PDO_ODBC [34] => pdo_pgsql [35] => pdo_sqlite [36] => pdo_user [37] => cpdf [38] => pdf [39] => gd [40] => msql [41] => mysql [42] => mysqli [43] => openssl )

 

 

Apenas o OCI do PDO esta habilitado.....

 

no ext tem a php_oci.dll, etc...mas minha dúvida tambem é se foi instalado o Oracle depois de ter habilitado o OCI ...será que pode ser isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o problema pelo que estou vendo é que estou usando um .INI para guardar os dados de conexão, então creio eu que não estou usando o PDO, mas como é um projeto que já veio assim devo apenas continuar como o pessoal definiu, senão já tinha passado para .PHP, mas ai como carregar o OCI8? Dentro da minha EXT do PHP tem as extensões como php_oci8.dll, php_pdo.dll,php_pdo_oci8.dll,php_pdo_oci.dll,etc. Mas mesmo assim ele diz que não consegue carregar o OCI8.

 

Estou meio que perdido, preciso de uma luz....

 

Meu CONFIG.INI está assim:

 

[general]

db.adapter = Oracle

db.config.username = USERNAME

db.config.password = SENHA

db.config.dbname = MEUBD

db.config.host = 192.168.50.210

cache.frontendOptions.automatic_serialization = true

cache.backendOptions.cache_dir = ./cache

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não basta que o arquivo .dll da estensão esteja na pasta exts, você também precisa editar o arquivo php.ini na path do php para que a extensão seja carregada:

 

localize a linha seguinte:

;extension=php_oci8.dll

 

 

retire o ';'

 

verifique novamente as exts carregadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.