Oracle + PHP: Mostrar Dados do Select

Oásis no deserto de Gobi - China

Após instalado a biblioteca oci e criado o arquivo de conexão, está na hora de mostrar os dados vindos de um select.

Vamos imprimir na tela a seguinte consulta:


 <?php
 require 'conexao.php'; //chama o arquivo de conexao

 $sql = 'SELECT country_id as "abrev",
                country_name as "Pais",
                region_id as regiao
         FROM hr.countries 
         WHERE region_id = 2';

 $rs = oci_parse($db,$sql); //oci_parse equivale ao mysqli_query()
 oci_execute($rs) 

 //oci_fetch_assoc() equivale ao mysqli_fetch_assoc()
 while($row = oci_fetch_assoc($rs)):
 echo "Região: " . $row['REGIAO'] . 
      ", País: " . $row['Pais'] . 
      ", abrv: " . $row['abrev'] . 
      "< /br>";
 endwhile;

?>

Oracle + PHP: Arquivo de Conexão

Arco de Darwin, Galápagos - Equador

Após habilitar o Esquema HR do Oracle (ou se já tiver algum outro banco de dados cadastrado) e habilitar a biblioteca OCI, faça o teste para verificar se o PHP e o Oracle estão "conversando".

<?php
  //arquivo conexao.php
  //BANCO 1: CONEXÃO COM ORACLE
  $db = oci_connect('hr','oracle','localhost/XE','UTF8');
  if (!$db): //se erro
    $erro = oci_error();
    echo ($erro['message']."\n");
    oci_close($db);
    exit;
  else:
  //se conexão ok
    echo "<h1>Conectado</h1>";
  endif;
  
  //habilitar erros
  error_reporting(E_ALL);
?>

Salve o arquivo na pasta htdocs do xampp e faça o teste através do navegador.

Certifique-se de ter digitado senha e usuário corretamente além da string de conexão (localhost/XE). Se estiver acessando o banco de dados em outro servidor, basta substituir localhost pelo endereço IP, por exemplo: "192.168.0.2/XE".

Oracle + PHP: Habilitar biblioteca OCI

Swallow's Nest, Crimeia - Ucrânia

Como utilizar PHP com Oracle


Habilite a biblioteca oci dentro do arquivo php.ini (dentro da pasta C:\Xampp\php) dependendo da versão do oracle que possuir. Habilitar significa simplesmente retirar o carácter de comentário da linha, neste caso deve-se retirar o ponto-e-vírgula:. Vou deixar habilitado a versão 11g.

;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client

Confira se dentro da pasta C:\xampp\php\ext estão as dlls:

oci.dll
php_oci8.dll
php_oci8_11g.dll

Baixe o Instant Client no site da Oracle (terá que criar uma conta no site da oracle):
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

  • Escolha de acordo com a versão do seu sistema operacional;
  • Descompacte o arquivo na raiz do C:;
  • Clique com botão direito sobre (meu) Computador e clique em Propriedades (ou tecle o atalho windows + pause break);
  • Clique em configurações avançadas do sistema e depois no botão "Variáveis de Ambiente";
  • Em variáveis do sistema, role o listbox até encontrar a variável PATH;
  • Quando a encontrar, clique em editar e adicione um ponto-e-vírgula no final da linha e depois adicione: C:\instantclient_11_2;
  • Reinicie o windows.



Esta tela do xampp (phpinfo) indica que a biblioteca oci está habilitada.




Configurações utilizadas:
  • Windows 7 64bits
  • Xampp 1.8.2
  • PHP: 5.4.19
  • oracle 11g


Oracle: Habilitar Esquema HR

Delfos - Grécia

Como habilitar o esquema HR (human resources) no oracle 11G?

Após instalar o oracle (eu instalei a versão Express Edition) vá até Todos os Programas e na pasta com os programas do Oracle, execute o Iniciar Banco de Dados, uma tela do DOS irá abrir.

Conecte no banco usando o comando sqlplus, informe seu usuário e senha e digite o comando:

ALTER USER hr IDENTIFIED BY sua senha ACCOUNT UNLOCK;

Não se esqueça do ponto-e-vírgula no final do comando senão o SQL Plus retorna erro. Feito isso seu esquema HR estará liberado!