roger_php 0 Denunciar post Postado Abril 8, 2008 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
mangakah 217 Denunciar post Postado Abril 8, 2008 '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
roger_php 0 Denunciar post Postado Abril 8, 2008 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
roger_php 0 Denunciar post Postado Abril 9, 2008 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
mangakah 217 Denunciar post Postado Abril 9, 2008 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