PHP e Oracle - O mundo dos grandes!!
Exemplo de uma função em Oracle para passar comandos SQL
Se você achou essa função estranha e/ou não funcionar favor reportar o erro e avisar-nos..
Apesar de estar levemente comentada a função segue o seguinte princípio
Ele recebe um bloco de comando SQL, verifica o verbo, e caso seja um select ela usa das funções OCIParse() e OCIExecute() (este segundo com a constante padrão OCI_DEFAULT) e executa o bloco.
Caso contrário, por padrão ele entraria em qualquer outro comando <> de select se é que vocês me entendem :)
Não sendo um select ele terá que validar isto, usando o famoso Commit do Oracle [pausa]
Pra quem começar a trabalhar com Oracle é assim, ele tem uma regrinha que nua e crua é a seguinte:
Não quero saber quem você é, se é importante ou não, tudo que você fizer dentro da tua seção filho, querendo ou não querendo você vai ter que validar. como ? dando o comando "commit" no SQLPlus por exemplo, no caso do PHP isto é feito com a função OCICommit()
Tá, não entendi nada do que você falou
vamos lá..
Este exemplo não funciona, porque ?
Bom, primeiramente porque não tem o OCICommit() pra validar a expressão, "segundamente" hehehe mesmo tendo o OCICommit() não iria funcionar porque não tem a constante
O certo seria:
O que acontece efetivamente ai em cima ?
O cara passa o comando de update na tabela de frutas, setando a quantidade no caso de melancias como 3, o segundo comando executa o bloco de SQL com a constante e em um terceiro momento ele valida a expressão, sem isso o Oracle finge que nem te viu :)
<?php function sql_legal($comando) { $vl_command = substr($comando,0,6); // pega os 6 primeiros caracteres da string, ou o verbo do comando SQL switch(strtolower($vl_command)): // comando switch do PHP com o verbo em minúscula case "select": $sql = OCIExecute(OCIParse($comando)); break; // caso seja select executa.. caso nao seja select ele executa o bloco com uma constante da função OCIExecute.. e dá Commit. default: $sql = OCIExecute(OCIParse($comando, OCI_COMMIT_ON_SUCCESS)); OCICommit($conexao); endswitch; // fim do switch return $sql; // retorna a variavel $sql } ?>
Se você achou essa função estranha e/ou não funcionar favor reportar o erro e avisar-nos..
Apesar de estar levemente comentada a função segue o seguinte princípio
Ele recebe um bloco de comando SQL, verifica o verbo, e caso seja um select ela usa das funções OCIParse() e OCIExecute() (este segundo com a constante padrão OCI_DEFAULT) e executa o bloco.
Caso contrário, por padrão ele entraria em qualquer outro comando <> de select se é que vocês me entendem :)
Não sendo um select ele terá que validar isto, usando o famoso Commit do Oracle [pausa]
Pra quem começar a trabalhar com Oracle é assim, ele tem uma regrinha que nua e crua é a seguinte:
Não quero saber quem você é, se é importante ou não, tudo que você fizer dentro da tua seção filho, querendo ou não querendo você vai ter que validar. como ? dando o comando "commit" no SQLPlus por exemplo, no caso do PHP isto é feito com a função OCICommit()
Tá, não entendi nada do que você falou
vamos lá..
<?php $sql_melancia = OCIParse("UPDATE frutas SET melancia='3'"); // bloco SQL OCIExecute($sql_melancia); // executa o bloco SQL acima. ?>
Este exemplo não funciona, porque ?
Bom, primeiramente porque não tem o OCICommit() pra validar a expressão, "segundamente" hehehe mesmo tendo o OCICommit() não iria funcionar porque não tem a constante
O certo seria:
<?php $sql_melancia = OCIParse("UPDATE frutas SET melancia='3'"); // bloco SQL OCIExecute($sql_melancia, OCI_COMMIT_ON_SUCCESS); // executa o bloco SQL acima. OCICommit($conectar); // valida a expressao ?>
O que acontece efetivamente ai em cima ?
O cara passa o comando de update na tabela de frutas, setando a quantidade no caso de melancias como 3, o segundo comando executa o bloco de SQL com a constante e em um terceiro momento ele valida a expressão, sem isso o Oracle finge que nem te viu :)
Boa tarde, alguem por favor saberia me informa que erro e este???? Conheco bem Oracle mas php nada ainda rsrsrsrs. Desde ja agradeco.
Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\phpinfo.php on line 2
Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\phpinfo.php on line 2
05/11/2006 11:56am
(~18 anos atrás)
Nao estou conseguindo usar as funções oci em um win xp prof.
Instalei o Oracle9i, habilitei no php.ini php_oracle.dll e php_oci8.dll mas consigo apenas usar as funções ora_*. Nas oci* o php retorna que não existe. Aceito sugestões.
Instalei o Oracle9i, habilitei no php.ini php_oracle.dll e php_oci8.dll mas consigo apenas usar as funções ora_*. Nas oci* o php retorna que não existe. Aceito sugestões.
14/06/2006 9:02am
(~18 anos atrás)
Cara eu tambem instalei o oracle 8 e php 5
e não consigo conectar por nada.
Se alguem ja tiver conseguindo me mande resposta.
Mas eu estou tentando com o oracle e o php na mesma maquina!
e não consigo conectar por nada.
Se alguem ja tiver conseguindo me mande resposta.
Mas eu estou tentando com o oracle e o php na mesma maquina!
23/03/2006 5:50am
(~18 anos atrás)
Ólá pessoal, eu tentei fazer a conexão do PHP com o Oracle e não tem jeito de funcionar tentei com varias versões do PHP e do Apache, tenho atualmente no micro o Apache 2, PHP 5, Client Oracle 8i, E o Win 2000, toda a configuração tanto quanto do oracle quanto php e apache estam corretas revisadas varias vezes por mais de 3 programadores aqui da empresa, e a conclusão que chegamos é que o php não conecta com o oracle 8i, não com Apache 2, PHP 4 e 5 e o Client Oracle 8i.
16/01/2006 11:52am
(~19 anos atrás)
Instalei o apache 1.3 e o php 5 sem problemas.. e ta td a funcionar!Eu agr keria ke o apache possa aceder a uma base de dados Oracle!Colokei o extension=oci.dll no php.ini ms ele diz ke n consegue carregar o module OCI! Alguem me puderia ajudar?
um Abraço
um Abraço
11/11/2005 6:06pm
(~19 anos atrás)
olá colega!
muito boa sua matéria!! só gostaria também que falasse um pouco sobre como executar stored procedures no oracle usando o php!!
Valew!
muito boa sua matéria!! só gostaria também que falasse um pouco sobre como executar stored procedures no oracle usando o php!!
Valew!
13/07/2005 12:56pm
(~19 anos atrás)
ERRO NA CONEXÃO
ORA-03113: end-of-file on communication channel
- to com esse erro ai alguem tem uma solução??
Desde já agradeço !
ORA-03113: end-of-file on communication channel
- to com esse erro ai alguem tem uma solução??
Desde já agradeço !
16/06/2005 1:33pm
(~19 anos atrás)
ta blz mto lindo... ri bastante quase me acabei d rir na verdade...
e pra execultar uma procedure ? vou usar OCIBindByName ???
o ki farei ?
e pra execultar uma procedure ? vou usar OCIBindByName ???
o ki farei ?
08/06/2005 2:13pm
(~19 anos atrás)
ORA-12560: TNS:erro de adaptador de protocolo
- Estou usando Oracle 10g e PHP 5.1.6 Apache 2.2, se quiser ver o info gabrielgaliaso.no-ip.org