Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Romulo UNDER Santos

[WAMP] Problema ao tentar conectar ao Oracle

Recommended Posts

Ola a todos,

 

Estou tentando conectar a uma base de dados oracle (11g) porém estou tendo o seguinte problema:

 

Fatal error: Call to undefined function oci_connect() in

 

Estou utilizando o wamp versão 64bits, já ativei pelo próprio painel a lib php_oci8_11g porém continuo tomando o mesmo erro. Tentei também ativar a lib php_oci8 e também tentei php_pdo_oci, porém não obtive sucesso.

 

O problema não se encontra no script pois o mesmo funciona em um ambiente com wamp + oracle11 porém com a versão 32bits do wamp e do sistema operacional.

 

Abaixo segue um exemplo de um código simples onde tomo este erro:

 

 

 

<?php
  error_reporting(E_ALL ^ E_NOTICE);


  include('class.oracle.php');
  $ora = new ORACLE(); 
  $ora->Connect("xe", "dev", "devs");
  
  $ora->SetFetchMode(OCI_ASSOC);
  $ora->SetAutoCommit(true);
  
  $h = $ora->Select("select * from users;");
  $r = $ora->FetchArray($h);
  $firstname = $r["usr_firstname"];
  echo $firstname;


  var_dump($r);
  
  ?>

Alguém já passou pelo mesmo problema poderia dar uma luz de como solucionar este problema? não estou interessado em trabalhar com o windows 32 bits.

Mesmo porque o servidor que irá rodar aplicação é 64bits.

 

Se alguém puder ajudar, desde já agraço !

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

libere essa extensão no php.in, remova o ';' da frente da linha php_oci8.dll reinicie o apache e deve funcionar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola shini, pois então, eu já fiz isso com a extensão php_oci8.dll e também com a php_oci8_11g.dll "intercalando" porém não obtive sucesso algum, o mais engraçado é com funciona normal com windows 32 e com a versão 32bits do wamp com ambas as libs habilitadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com o mesmo problema, Win 7 64btis, não consigo fazer a conexão do oracle através do PHP, utilizando o WAMP, já li de tudo na internet, mas nada que realmente solucione o problema, alguém teria alguma experiencia de sucesso para compartilhar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha, infelizmente essas bibliotecas PHP

p/ bancos de dados Oracle e sql server

estão desatualizadas faz tempo..

a solução que encontramos foi PDO/ODBC.

 

qual sua versão do Oracle?

 

caso queira tentar c/ a versão Express do 11g, esquema "HR"

crie uma conexão DSN-ODBC (painel de controle - ferramentas administrativas - ODBC - fontes de dados de sistemas .. etc.), depois 1 pg simples em PHP:

<?php
try {
$senha="XXX";
$db = new PDO("odbc:DSN=XXXX;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>

substitua o XXX pela senha do hr e os 4 X pelo nome da fonte DNS.

 

Lembrando: PHP é "case sensitive" e o padrão do Oracle é nomes de colunas em maiusculas, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Digite: http://localhost/?phpinfo=1

 

Olhe o conteúdo do parâmetro "Configure Command": deve estar mais ou menos assim depois que você habilitou a extensão do Oracle: cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze"

 

Note que ao habilitar a extensão o sistema aponta algumas configurações para C:\php-sdk\oracle\instantclientXX, então para fazer funcionar a conexão como Oracle você deve baixar o instantclient10 ou 11 e descompactá-lo dentro deste caminho. Certifique-se que o diretório sdk esteja dentro de C:\php-sdk\oracle\instantclientXX conforme o caminho exibido no parâmetro "configure command" do "phpinfo". Por último reinicie o Wamp. Só isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Funcionando no servidor você tem que descometa php_oci8.dll


<?php $ora_host = "host";

$ora_user = "user";

$ora_senha = "senha";

$port = "1525";

$server_name = "WORK";

$charset= "AL32UTF8";



$banco="(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)

(HOST=$ora_host)(PORT=$port)

)

)

(CONNECT_DATA=(SERVICE_NAME= $server_name ))

)";

$c = oci_connect($ora_user, $ora_senha, $banco, $charset);

if (!$c) {

$e = oci_error();

echo "Erro ao conectar ao Oracle HELPDESK" . $err['message'];

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.