Seu erro mostra uma incompatibilidade de tipo interno.
Resolva seguindo estes passos:
Certifique-se de baixar e instalar o Oracle instantclient em:http://www.oracle.com/technetwork/topics/winsoft -085727.html , mas observe:
- Anote seu Oráculo versão do banco de dados; use a versão 12.1.x para banco de dados Oracle 12c e Versão 11.1.x por 11g lançamentos.
- Em ambos os casos, certifique-se de fazer o download do Basic Lite versão do Oracle instantclient.
Depois disso, adicione a localização do seu Oracle instantclient à sua variável de sistema Path em suas variáveis de ambiente. Certifique-se igualmente de ter o PHP do seu xampp e sua extensão disponíveis e defina lá também (se não, adicione-os).
Em seguida, adicione uma nova variável de sistema com TNS_ADMIN como nome da variável e a localização do Oracle instantclient como valor da variável .
Além disso, defina suas variáveis de usuário PATH com o mesmo local para Oracle instantclient como valor .
Após este estágio, reinicie seu computador para uma propagação completa das variáveis de ambiente recém-definidas.
Uma vez ligado, você pode abrir seu Prompt de Comando do Windows e execute onde oci* para garantir que você tenha suas variáveis de ambiente bem definidas; a resposta deve ficar assim:
C:\Users\flex>where oci*
C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.sym
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ociw32.dll
C:\instantclient_11_2\oci.dll
C:\instantclient_11_2\oci.sym
C:\instantclient_11_2\ocijdbc11.dll
C:\instantclient_11_2\ocijdbc11.sym
C:\instantclient_11_2\ociw32.dll
C:\instantclient_11_2\ociw32.sym
Caso contrário, você deve ter perdido algo e precisa rever o processo, garantindo a conclusão de forma eficaz.
Agora você pode prosseguir para seu arquivo php.ini (desde que as variáveis de ambiente estejam bem definidas) e habilitar seu oci extensões (php_oci8.dll e php_oci8_11g.dll) removendo os comentários; você pode conseguir isso simplesmente removendo a semi-coluna (; ) antes das referidas extensões.
Lembre-se de salvar seu arquivo php.ini e, em seguida, reinicie ou inicie seu apache se ele ainda não estiver em execução.
Para verificar se as configurações do PHP oci8 estão habilitadas, você pode voltar ao Prompt de Comando do Windows e executar:php --ri oci8; a resposta deve ser semelhante à abaixo:
C:\Users\flex>php --ri oci8
OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.1
Revision => $Id: 86f22a208f89dcd5b305e82929a7429683968b11 $
Oracle Run-time Client Library Version => 11.2.0.4.0
Oracle Compile-time Instant Client Version => 10.2
Directive => Local Value => Master Value
oci8.max_persistent => -1 => -1
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
oci8.default_prefetch => 100 => 100
oci8.old_oci_close_semantics => Off => Off
oci8.events => Off => Off
Statistics =>
Active Persistent Connections => 0
Active Connections => 0
Alternativamente, você pode criar um arquivo PHP com
<?php phpinfo(); ?>
como conteúdo, abra-o em seu navegador e procure por ocorrências oci8; ele deve mostrar ativado lá também.