Jump to content
Matheus_Moura

Conexão banco de dados com PHP e ORACLE

Recommended Posts

Boa tarde.

Estou fazendo uma aplicação PHP em um PC Linux com Lubuntu como SO, para conexão com um banco de dados ORACLE 11g. Porém quando utilizo a função oci_connect ou qualquer outra função para oracle é retornado uma mensagem informando que estão indefenidas.

Estou utilizando o XAMPP como servidor e fiz a configuração no caminho opt/lampp/etc/php.ini retirando o ; tanto no php_oci8.dll como também na php_oracle.dll, porém não obtive sucesso. Coloquei dentro da pasta opt também o instantclient já descompactado e utilizei o PECL para tentar ativar as OCI, porém mesmo assim ainda não consegui sucesso. Alguém teria alguma outra sugestão ?

 

Att,

Matheus Moura

Share this post


Link to post
Share on other sites

Ola boa noite se você esta recebendo mensagem ora_logon era uma função usada antigamente (a muito tempo mesmo) no PHP4, hoje não usa mais ela, agora utilizam oci_login por exemplo, que permite acesso aos 12c, 11g, 10g, 9i e 8i.

1.Edite o arquivo php.ini e remova o ponto e virgula da seguinte linha (se for windows)

extension=php_oci8_11g.dll

Se for *nix:

extension=oci8.so

Windows:
Faça download do OTN Instant Client page - provavelmente o 32bit, mas se falhar e o seu php for 64bit, talvez você deva tentar ele.
Extraia o arquivo baixado em C:\instantclient_11_2
Adicione o caminho as Variáveis do Sistema (PATH) Menu Iniciar > Painel de Controle > Sistema e Segurança > Sistema > Configurações avançadas do sistema (ou digite no executar/cmd SystemPropertiesAdvanced)
Procure o botão chamado Variáveis de Ambiente
Tem duas áreas, Variáveis de usuário e Variáveis do Sistema, procure em Variáveis do Sistema a variável PATH e clique em editar
Adicione no final isto (cuidado para não apagar o que já tiver) ;C:\instantclient_11_2
As função usada para conectar usada é oci_login, lista de funções da documentação http://php.net/manual/en/book.oci8.php

Exemplo de uso:

<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_assoc($stid)) != false) {
    echo $row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

Qualquer dúvida de um olhada aqui no FÓRUM mesmo tem umas dicas sobre isso

 

Tem um comentário feito pelo FERNANDO C

 

No BLOG DE FABIANO BENTO tem também informações que possa lhe ajudar....

 

Espero ter ajuda em alguma coisa...

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rjlfurtado
      Segue abaixo o exemplo de como seria feito em SQL:
      CREATE TABLE tabela ( campo1 DOUBLE, campo2 DOUBLE, divisao DOUBLE AS (campo1/campo2) ); Agora eu preciso criar uma migração no Laravel 6, segue exemplo abaixo:
      $table->integer('qtd_saida'); $table->decimal('valor_uni', 8, 2); $table->double('valor_total')->as(qtd_saida * valor_uni);  
    • By Maccio
      Estou tentando criar um relatório com total de horas trabalhadas do funcionários por dia, tenho uma tabela FRQ_digitacao onde eu tenho os dados para calcular o total de horas e se tiver com zero horas eu digo a ocorrência do mesmo, ex: falta, Folga, etc. Quero também colocar a informação de férias quando o mesmo estiver de férias, porém quando ele está de férias a tabela FRQ_digitacao fica sem registros nos dias de Férias, assim tenho que buscar a informação na tabela FLP_Ferias onde é lá que diz o gozoinicial e gozofinal, porém não estou conseguindo fazer essa comparação já que na tabela FRQ_digitacao nesses dias de ferias o funcionário fica sem registro.
       
      select T.CODINTFUNC, f.CHAPAFUNC, LISTAGG( CASE WHEN T.NORMALDIGIT=0 THEN OC.DESCMAPAOCORR WHEN t.DTDIGIT IS NULL THEN 'dt.dtdigit' --when dt.dtdigit between fe.inicio and fe.fim --then 'FER' ELSE to_char((TRUNC(T.NORMALDIGIT)+TRUNC(t.extradigit)+TRUNC(t.extranotdigit))+ ((trunc(((T.NORMALDIGIT-trunc(T.NORMALDIGIT))+(t.extradigit-trunc(t.extradigit))+(t.extranotdigit-trunc(t.extranotdigit)))/0.60))+ mod(((T.NORMALDIGIT - trunc(T.NORMALDIGIT))+(t.extradigit - trunc(t.extradigit))+(t.extranotdigit - trunc(t.extranotdigit))),0.60)),'FM99999D90', 'nls_numeric_characters=''.,''' ) END, ' ') within group (order by t.dtdigit) horas, MAX(FE.INICIO), MAX(FE.FIM ) from vw_funcionarios f, FRQ_DIGITACAOMOVIMENTO O, FRQ_OCORRENCIA OC, frq_digitacao t, (select f.codintfunc INT, f.chapafunc, max(fe.dtcompetfer)COMPET, MAX(fe.gozoinifer) INICIO, MAX(fe.Gozofinfer) FIM from flp_ferias fe, flp_funcionarios f where f.codintfunc=fe.codintfunc AND F.SITUACAOFUNC='A' and f.codigoempresa=1 AND FE.STATUSFERIAS='N' group by f.chapafunc, f.codintfunc) FE, (select t.DTDIGIT from frq_digitacao t WHERE t.dtdigit between '01-NOV-2019' AND '20-NOV-2019' group by t.dtdigit) DT where DT.DTDIGIT(+)=T.dtdigit and fe.INT=t.codintfunc and f.codintfunc=t.codintfunc AND F.CODIGOEMPRESA=1 and O.CODINTFUNC=T.CODINTFUNC AND T.DTDIGIT=O.DTDIGIT AND O.CODOCORR=OC.CODOCORR AND dt.dtdigit BETWEEN '01-NOV-2019' AND '20-NOV-2019' -- AND F.CODDEPTO BETWEEN 15 AND 15 AND O.STATUSDIGIT='N' and o.iddigit = (select max(p.iddigit) from frq_digitacaomovimento p where o.codintfunc=p.codintfunc and o.dtdigit=p.dtdigit AND P.STATUSDIGIT='N' and p.dtdigit between '01-NOV-2019' AND '20-NOV-2019') group by f.CHAPAFUNC, T.CODINTFUNC  



    • By Marxrj
      Olá a todos!,
      Queria aqui uma dica se alguém sabe como alinhar fotos no centro pelo bootstrap.
      Usando o padrão fotos retratos fica como abaixo
      __________  __________
      __________
       
      Mas eu queria que quando tivesse um número impar, a foto não ficasse alinhada na esquerda e sim centralizada como abaixo
      __________  __________
                __________
       
      Estou usando este padrão abaixo aonde ele alinha duas fotos ao lado, mas quando tem somente um ou em número impar, essa não centraliza e sim fica a esquerda.
      <div class="col-xs-12 col-sm-10 col-lg-6 col-md-3">
    • By JoãoRicardo.Lima
      Olá pessoal blz?.
      Estou com problemas para ler um xml, estou pegando ele com simplexml_load_file(), quando eu dou um vardump ele me mostra todas as propriedades e tals, mas quando eu tento pegar a propriedade(exemplo $xml->emit) ele me retorna null, abaixo está o código.
       
      $arquivo = $_FILES['xml_conta']; $xml = simplexml_load_file($arquivo['tmp_name']); var_dump($xml->ide); Já tentei pegar o arquivo direto do diretório mas da no mesmo. Abaixo o meu var_dump().
       
      object(SimpleXMLElement)#2 (3) { ["@attributes"]=> array(1) { ["versao"]=> string(4) "4.00" } ["NFe"]=> object(SimpleXMLElement)#4 (2) { ["infNFe"]=> object(SimpleXMLElement)#6 (9) { ["@attributes"]=> array(2) { ["versao"]=> string(4) "4.00" ["Id"]=> string(47) "NFe51191203927792000132550010003900572477841258" } ["ide"]=> object(SimpleXMLElement)#8 (22) { ["cUF"]=> string(2) "51" ["cNF"]=> string(8) "47825479" ["natOp"]=> string(33) "Venda Terceiros" ["mod"]=> string(2) "50" ["serie"]=> string(1) "1" ["nNF"]=> string(6) "397894" ["dhEmi"]=> string(25) "2019-12-05T18:35:33-04:00" ["dhSaiEnt"]=> string(25) "2019-12-05T18:35:33-04:00" ["tpNF"]=> string(1) "1" ["idDest"]=> string(1) "1" ["cMunFG"]=> string(7) "51074" ["tpImp"]=> string(1) "3" ["tpEmis"]=> string(1) "2" ["cDV"]=> string(1) "5" ["tpAmb"]=> string(1) "2" ["finNFe"]=> string(1) "2" ["indFinal"]=> string(1) "1" ["indPres"]=> string(1) "1" ["procEmi"]=> string(1) "0" ["verProc"]=> string(7) "3.5.1.2" ["dhCont"]=> string(25) "2019-12-05T15:32:22-04:00" ["xJust"]=> string(23) "sem conexao com o sefaz" }  
    • By granderodeo
      Queria que quando o usuário efetuasse o login, exibisse a mensagem "Login efetuado com sucesso", e se houve algum erro também exibisse uma mensagem de erro.
       
      valida_login.php
      <?php session_start(); include_once("config/conexao_fornec.php"); if (isset($_POST['enviar'])) { if (!empty($_POST['login']) || !empty($_POST['senha'])) { $login=$_POST['login']; $senha=MD5($_POST['senha']); $comando="SELECT * FROM usuarios, orders WHERE email = '$login' and senha= '$senha' and id_usuario"; $enviar=mysqli_query($conn, $comando); $resultado= mysqli_fetch_assoc($enviar); if ($resultado) { $_SESSION['id_usuario']=$resultado['?']; $_SESSION['order_date']=$resultado['order_date']; $_SESSION['order_id']=$resultado['order_id']; $_SESSION['login']=$resultado['login']; $_SESSION['senha']=$resultado['senha']; $_SESSION['email']=$resultado['email']; $_SESSION['nome']=$resultado['nome']; $_SESSION['id']=$resultado['id']; $_SESSION['seguranca']=$resultado['seguranca']; header("location:../index.php"); exit; }else{ $_SESSION['msg'] = "<div class='alert alert-success'>Versão e Revisão cadastrada com sucesso!</div>"; } }else{ $_SESSION['mensagem']="<div class='alert alert-danger alert-dismissible text-center' style='width: 24.5%; position: absolute; margin-left: 38.2vw; margin-top: 3vh;'><button type='button' class='close' data-dismiss='alert'>&times;</button>Ops! Alguns dos campos ficou em branco.</div>"; header("location:https://compre-aqui.com/users/"); exit; } }else{ header("location:users"); exit; } ?>  
       
      Corpo do login
      <section class="hero is-success is-fullheight"> <div class="hero-body"> <div class="container has-text-centered"> <div class="column is-4 is-offset-4"> <h2 class="text-center mb-4">Faça seu login</h2> <div class="box"> <form action="validar_login.php" method="POST"> <div class="field"> <div class="form-group"> <label for="name">E-mail</label> <input name="login" id="name" type="name" class="form-control" placeholder="Nome completo"> </div> </div> <div class="field"> <div class="form-group"> <label for="senha">Senha</label> <input name="senha" id="senha" class="form-control" type="password" placeholder="Senha"> </div> </div> <button type="submit" class="btn btn-info btn-block" name="enviar">Realizar login</button> </form> <hr style="background-color: white;"> <a href="https://compre-aqui.com/users/cadastro.php" class="btn btn-info btn-block mt-2">Esqueci minha senha</a> <a href="https://compre-aqui.com/users/cadastro.php" class="btn btn-info btn-block mt-2">Cadastre-se</a> </div> </div> </div> </div> </section>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.