segunda-feira, 21 de março de 2016

Conexão a um banco de dados Oracle em PHP com PDO



Uma forma bem simples de criar uma conexão em PHP a uma base dados Oracle é utilizando uma fonte de dados ODBC. Neste tutorial, vamos usar a versão 11g Express (gratuita) do Oracle, acessando a tabela “employees” do esquema hr no Windows 7.
O primeiro passo é criar a fonte de dados ODBC. Para isso, acesse o Painel de Controle – Ferramentas Administrativas – Fontes de dados (ODBC) - Fontes de dados de sistema – Adicionar – Oracle in XE – Concluir:




Na tela seguinte, em “Data Source Name” digite um nome qualquer para a conexão (vamos usar “conora”, sem aspas); em TNS Service Name” digite “localhost” e em “User ID” hr (o nome do esquema):


A seguir clique em “test connection” e insira a senha que vc utiliza normalmente para trabalhar com o esquema:


Deverá surgir uma mensagem “Connection successful”; confirme em OK – OK. A nova fonte de dados já aparece na tela “Fontes de dados de sistema”:


Clique em OK e feche o painel de controle; agora crie uma nova pg. PHP. Copie e cole o código abaixo, usando a mesma senha que vc digitou para testar a conexão:

<?php
try {
$senha="XXX";
$db = new PDO("odbc:DSN=conora;Uid=hr;pwd=$senha");
 } catch (PDOException $e) {
    print $e->getMessage();
 }
?>
 <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>teste Oracle com PDO</title>
</head>
<body>

<p>Teste Oracle com PDO
</p>

<?php
$stmt = $db->prepare("select * from employees");
$stmt->execute();
while($reg = $stmt->fetch(PDO::FETCH_OBJ))
{
echo $reg->EMPLOYEE_ID." - ";
echo $reg->FIRST_NAME." ";
echo $reg->LAST_NAME."<br />";
}

?>
</body>
</html>

Atenção: lembre-se que, por padrão, nomes de colunas no Oracle são em maiúsculas, ok?
Salve e teste no navegador: