walace 1 Denunciar post Postado Junho 22, 2005 Sei que muitos irão falar que têm vários exemplos na net sobre isso, mas vi vários e de nada adiantou, não estou conseguindo acessar. Seguinte os passos do artigo do Júlio me dá a seguinte mensagem: Fatal error: Call to undefined function: ocilogon() in c:\pmsjpnet\teste\phpora\conecta.php on line 11Aí vai o script: PHP [*]<br /><?<br />//=========================================================//<br />//ARQUIVO: Arquivo de conexão com o banco de dados ORACLE<br />//DATA: 29/07/2002<br />//BY: Júlio César Martini<br />//=========================================================//<br /><br />$ora_user = "system"; //USUÁRIO <br />$ora_senha = "manager"; //SENHA<br /><br />$ora_conecta = ocilogon($ora_user,$ora_senha);<br /><br />if(!$ora_conecta)<br /> echo "ERRO !!! Verifique usuário e senha !";<br /><br />?> No servidor instalei o cliente oracle, configurei o tnsnames para apontar para o servidor que usamos nos outros sistemas. Agora estou tentando uma classo ADO, facilmente encontrada em ADODB.inc.php e com vários artigos na web sobre este assunto, mas dá o seguinte erro: Fatal error: Class adodb_oracle: Cannot inherit from undefined class adoconnection in adodb.inc.php on line 18Este erro está dentro do .inc. Alguem tem idéia do que fazer para ajudar ? Espero que este tópico fique bem problemático, longo e cheio de respostas, assim podemos ter uma fonte boa para este problema aqui. ;) Compartilhar este post Link para o post Compartilhar em outros sites
flavialieggio 0 Denunciar post Postado Junho 22, 2005 Olá Wallace, So pra esclarecimentos... qual a versão do oracle que você esta utilizando? Ja tive probelmas com o exemplo do julio tambem para conecetar ao banco... vou mandar um exemplo de conexao que uso, mas quero deixar claro que a minha versao e 10g..... esse exemplo tbm vai servir para a versao o 8i do Oracle... $db = ocilogon("usuario","senha","banco");É bem simples e similar com a do julio... a diferenca e que não funcionaria com o @ocilogon Espero ter ajudado mais que atrapalhado... Abraços Flávia Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 22, 2005 Minha versão é a 9. É só o que falta... mas se na 8 e 10 dá, na 9 deve dar também. (eu espero). Compartilhar este post Link para o post Compartilhar em outros sites
flavialieggio 0 Denunciar post Postado Junho 22, 2005 Acho que na versao 9 do Oracle deve funcionar sim.... qualquer duvida posta ai!!!Abraços,Flávia Compartilhar este post Link para o post Compartilhar em outros sites
flavialieggio 0 Denunciar post Postado Junho 23, 2005 Só mais uma dica: o que me ajuda muito são as pesquisas que faço no site php.net. Voce pode sempre estar pesquisando por variáveis do OCI ou ORA!!! Abraços, Flavia Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 23, 2005 Consegui... amanhã posto o codigo aqui pro pessoal ver. Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 24, 2005 Bom... vamos lá... o que fiz foi seguir os passos deste link: http://www.oracle.com/technology/tech/php/...he_windows.html. Mas os artigos do Júlio dão uma boa base, na minha opinião é leitura obrigatória. Acredito que não tenha dado certo na primeira vez pq eu tinha uma versão inferior a esta do php, mas o que fiz foi instalar esta e também o cliente do oracle no servidor, mas não sei se isto é necessário mesmo. (Se alguem souber por favor responda). No mais funcionou perfeitamente, aí vão os scripts: Conexão: PHP [*] [*]<? [*] $user = 'TESTE'; [*] $pass = 'TESTE'; [*] $server = 'TESTE'; [*] $db_conn = ocilogon( $user, $pass, $server ); [*]?> [*] Select: PHP [*] [*]<? [*] include('conecta.php'); [*] $sql = 'SELECT * FROM TESTE'; [*] $parsed = ociparse($db_conn, $sql); [*] ociexecute($parsed); [*] $nrows = ocifetchstatement($parsed, $results); [*] for ($i = 0; $i < $nrows; $i++ ) [*] { [*] $cod = $results['COD'][$i]; [*] $nom = $results['NOM'][$i]; [*] [*] echo '<br>Codigo: '.$cod.' Nome: '.$nom; [*] } [*] [*]?> [*] Inclusão: PHP [*] [*]<? [*] include('conecta.php'); [*] $sql = "INSERT INTO TESTE (COD, NOM) VALUES(4,'NOME 4')"; [*] $sql = ociparse($db_conn,$sql) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL"); [*] ociexecute($sql,OCI_COMMIT_ON_SUCCESS); [*] ocifreestatement($sql); [*] ocilogoff($sql); [*]?> [*] Alteração: PHP [*] [*]<? [*] include('conecta.php'); [*] $sql = "UPDATE TESTE SET NOM = 'NOME UM (ALTERA)' WHERE COD = 2"; [*] $sql = ociparse($db_conn,$sql) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL"); [*] ociexecute($sql,OCI_COMMIT_ON_SUCCESS); [*] ocifreestatement($sql); [*] ocilogoff($sql); [*]?> [*] Exclusão: PHP [*] [*]<? [*] include('conecta.php'); [*] $sql = "DELETE FROM TESTE WHERE COD = 2"; [*] $sql = ociparse($db_conn,$sql) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL"); [*] ociexecute($sql,OCI_COMMIT_ON_SUCCESS); [*] ocifreestatement($sql); [*] ocilogoff($sql); [*]?> [*] Bom está aí e espero que ajude alguem futuramente, só fica minha dúvida se precisa realmente do cliente oracle instalado neste servidor, vou tentar desinstalar e ver no que dá depois. :D Compartilhar este post Link para o post Compartilhar em outros sites
flavialieggio 0 Denunciar post Postado Junho 24, 2005 Olá wallace!Sobre o cliente, é fundamental que voce o tenha, pois ele é o responsavel pela conexao com o banco. E tipo uma biblioteca utilizada para conectar ao banco oracle... Muitos dizem que voce pode trabalhar mantendo somente o ODBC, porem até mesmo o ODBC possui um cliente para possibilitar a conexão com o banco!.... E com certeza esses scripts serão de grande ajuda!!!Abraços,Flávia Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 29, 2005 beleza adailton, eu já tinha visto estes dois tópicos, mas o que postei me ajudou mais, pois detalha menor os passos, mas...agora meu problema mudou, já está tudo funcionando em uma máquina com XP, Apache e o php 4.3.9, mas onde vai rodar realmente, é um servidor Linux, acho que Debian... o cara que administra falou que fez tudo certo, mas não roda e dá o seguinte erro: Warning: ocilogon(): _oci_open_server: ORA-12154: TNS:could not resolve the connect identifier specified in /home/walace/public_html/conecta.php on line 5Acredito que seja algo com o tnsnames do Oracle, mas nem eu, nem o o "cara do Linux" sabe como resolver isso, alguem ajude !!! Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 30, 2005 Opa pessoal, então adailton, tentei pesquisar o que você me falou, mas desde o início achei que fosse legal se tivesse uma forma para o desenvolvedor controlar o server que ia ser acessado, daí achei no próprio manual do php uma dica que mostra como alterar o tnsnames, ou melhor, informar no script php o server que será acessado. Aí vai o conecta.php alterado: PHP [*] [*]<? [*] $user = 'HDARQ'; [*] $pass = 'SEMPLAN'; [*] $server = "(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))) (CONNECT_DATA =(SERVICE_NAME = SEU_SERVICE_NAME) ))"; [*] $db_conn = ocilogon( $user, $pass, $server ); [*]?> [*] Agora está tudo ok. Valeu pela força pessoal. Compartilhar este post Link para o post Compartilhar em outros sites