Hoje, comecei um projeto novo que necessita trabalhar com oracle, e como todos sabem sou amante do PHP, para começar o php não da suporte nativo ao Oracle. Isso nos faz colocar a mão na massa e obter mais conhecimento.
Bora começar.
Cenário.
- Centos 6.3 x64 EN
- Apache 2.2.15
- PHP 5.3
Instalando dependências.
# yum install php php-devel php-pear gcc gcc-c++ autoconf -y
OBS:. Tem que fazer login em oracle.com para poder baixar.
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Baixar o Basic e Devel para a sua versão do OracleDB.
OBS:. Se a sua versão do oracle for 11, desculpe-me, mas os clients não podem ser na mesma versão, vão ter que ser na versão 10.
Feito isso é hora de instalar o plugin no PHP.
# pecl install oci8
Saída....
Build process completed successfully
Installing '/usr/lib64/php/modules/oci8.so'
install ok: channel://pecl.php.net/oci8-1.4.9
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini
Temos que adicionar no php.ini o plugin. Para isso.
# echo "extension=oci8.so" >> /etc/php.ini
# /etc/init.d/httpd restart
# php -i | grep oci8
E ta não mão o php configurado para trabalhar com Oracle DB.
ATUALIZADO
Ao fazer a conexão com o DB e retornar um erro. "ORA-24408: could not generate unique server group name"
Exemplo de conexão com oracle utilizando php.
<?php
$usuario=" ";
$senha=" ";
$host=" ";
$db=" ";
$tns = "(DESCRIPTION = "
. " (ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = 1521))"
. " (CONNECT_DATA ="
. " (SERVER = DEDICATED)"
. " (SERVICE_NAME = $db)"
. " )"
. " )";
if ($c = @oci_connect($usuario, $senha, $tns)) {
echo "Successfully connected to Oracle.";
oci_close($c);
} else {
$err = oci_error();
$error = $err['message'] . "\n\n";
print $error;
}
?>
Abraços
Marcos Carraro
Não seria melhor usar PDO?
ResponderExcluir