Aprendendo a fazer uma consulta no DB Oracle usando PHP

Posted by Bento | Posted in Artigos, Banco de Dados, Oracle, PHP | Posted on 06-08-2010-05-2008

2

Continuação do artigo sobre conexão com Oracle usando PHP. Vou mostrar como fazer consultas em tabelas, criar variaveis, e usar OCI_NO_AUTO_COMMIT.

//conexão com o Oracle
$conexao = oci_connect('usuario', 'senha', '127.0.0.1/nome_servico');

if (!$conexao) {
$erro = oci_error();
trigger_error(htmlentities($erro['message'], ENT_QUOTES), E_USER_ERROR);
exit;
}

//bloco da consulta SQL
$consulta = "select * from cep_localidade";
$stid = oci_parse($conexao, $consulta) or die ("erro");

//Executa os comandos SQL
$exec= oci_execute($stid);

//defini váriaveis
oci_define_by_name($stid, 'COLUNA1', $VAR1);
oci_define_by_name($stid, 'COLUNA2', $VAR2);
oci_define_by_name($stid, 'COLUNA3', $VAR3);

//Abaixo conta a quantidade de linhas retornada da consulta.
echo $nrows = oci_fetch_all($stid, $results);

oci_free_statement($stid);
//fecha a conexão atual
oci_close($conexao);

Pessoal espero que ajude e tire as duvidas de quem vai começar a usar PHP+ORACLE, é um exemplo bem simples de como fazer uma consulta no banco de dados.

Para usar INSERT, UPDATE OU DELETE use a função OCI_NO_AUTO_COMMIT e valide em seguida.

$exec= oci_execute($stid, OCI_NO_AUTO_COMMIT);
//se encontrar algum erro da um rollback NÃO efetiva a query
if (!$exec) {
    $e = oci_error($stid);
    oci_rollback($conexao);  // rollback changes to both tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// COMITA a query
$exec = oci_commit($conexao);
if (!r) {
    $e = oci_error($conexao);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

Comments posted (2)

Muito legal seu artigo, ja mexo a um bom tempo com mysql, mas agora tenho que ler uma view em um banco de dados oracle e não estou conseguindo fazer em php.
A view esta ok porque consegui ver com o ORACLE SQL developer. Estou usando Linux.

quando tento qualquer exemplo ele para na seguinte linha :

$conexao = oci_connect(‘usuario’, ‘senha’, ‘127.0.0.1/multimed’);

ja preenchi com as informações correta e nada.

O servidor é remoto e tenho apenas permissão de leitura.

dados adcionais que me passaram :

Usuário: xuxu
Senha: pera
View: DBA_EQUIPAMENTOS

String de Conexão:

MULTIMED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = x.x.x.x)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = multimed)
)
)

Obrigado .

Olá Antonio,
-Primeiramente é necessário configurar o PHP(ativar a biblioteca) para a conexão com o Oracle, no link http://blog.fabianobento.com.br/2010/08/php-conexao-com-oracle/ você poderá ver como fazer, lembrando que também é necessário instalar o cliente do oracle no servidor onde está o APACHE/PHP, que irá efetuar a conexão com o banco de dados Oracle e configurar o arquivo TNSNAMES com o aliases do banco.

-Neste segundo link você poderá ver um material complementar da configuração do PHP para a conexão http://blog.fabianobento.com.br/2012/10/configurando-php-para-suporte-com-oracle-usando-centos-6-3-red-hat-6-3/

Após estes passos acima, você poderá testar a conexão e select na view.

Write a comment