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); }
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.