ORACLE com erro Undefined constant: CodeIgniter\Database\OCI8\OCI_COMMIT_ON_SUCCESS ou oci_connect() not found

Erro que acontece oci_connect() not found;

No codeigniter acontece o seguinte:

Undefined constant: CodeIgniter\Database\OCI8\OCI_COMMIT_ON_SUCCESS

 

Ao fazer uma conexão com oracle, funciona se servir o PHP direto pela linha de comando:
 

Funciona perfeitamente:

php -S localhost:8081 

Pelo Xampp acontecem os erros indicados.

 

Uma solução é adicionar c:\oracle\instantclient_19_5\ ao path, mas, as vezes pode não funcionar, então uma alternativa é copiar DLLs para a pasta do apache (c:\xampp\apache\bin) para que o sistema use-as diretamente na inicialização do apache "Start" do xampp

 

 

 

Se você executa php codigo_teste.php e não der erro no prompt, então a solução para o problema é esta mesmo. Colocar no path ou copiar as DLLs.

Exemplo de código que dá erro:

<?php

$conn = oci_connect('usuario', 'senha',
'(DESCRIPTION =
(ADDRESS =
  (PROTOCOL = TCP)
  (HOST = 10.1.6.20)
  (PORT = 1521)
)
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = local.dominio.org)
)
)');

if (!$conn) {
   die("Error when trying to connect to the database!");
}

$stid = oci_parse($conn, 'SELECT cd_usuario from USUARIOS');
oci_execute($stid);

echo "<table>";
echo "<tr><th>Name</th></tr>";
while (($user = oci_fetch_array($stid, OCI_BOTH)) != false) {
  echo "<tr>";  
  echo "<td>".$user['CD_USUARIO']."</td>";
  echo "</tr>";
}
echo "</table>";

?>
 

Comentários

Postagens mais visitadas