Como conectar em um banco Oracle online, usando PHP + Slim Framework ?

29/03/2017

7

Eu tenho o seguinte código "index.php" no meu servidor contratado.

<?php
# Definindo pacotes de retorno em padrão JSON...
header('Content-Type: application/json;charset=utf-8');
 
# Carregando o framework Slim...
require 'Slim/Slim/Slim.php';
\\Slim\\Slim::registerAutoloader();
 
# Iniciando o objeto de manipulação da API SlimFramework
$app = new \\Slim\\Slim();
$app->response()->header('Content-Type', 'application/json;charset=utf-8');
 
# Função de teste de funcionamento da API...
$app->get('/', function () {
    echo "Bem-vindo a API do Sistema";
});
 
# Função para obter dados da tabela 'cliente'...
$app->get('/clientes',function(){
 
    # Variável que irá ser o retorno (pacote JSON)...
    $retorno = array();
   
        $user = "user"; $pass = "pass"; $name = "db_name"; $host = "201.62.99.137";

        $tns = " (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = ".$host.")(PORT = 1522)))(CONNECT_DATA = (SID = ".$name.")))";

        try
        {
            $conn = new PDO("oci:dbname=".$tns,$user,$pass);
            echo 'conectado -> '.date('H:i:s');

            foreach($conn->query('SELECT * from contrato') as $registro) 
            {
                $registro = array(
                        "NRO_CONTRATO"   => $cliente["NRO_CONTRATO"],
                        "DES_CONTRATO"     => $cliente["DES_CONTRATO"]),
                        "NRO_TIP_CONTRATO" => $cliente["NRO_TIP_CONTRATO"],
                        "NRO_GRUPO"    => $cliente["NRO_GRUPO"],
                );
                $retorno[] = $registro;
            }

        }catch(PDOException $e)
            {
                echo ($e->getMessage());
            }

        foreach(PDO::getAvailableDrivers() as $driver)
            echo '<br>',$driver, '<br>';
    
    if(!$tns){ echo "Não foi possível se conectar ao banco de dados"; exit;}
 
    # Retornando o pacote (JSON)...
    $retorno = json_encode($retorno);
    echo $retorno;
 
});
 
# Executar a API (deixá-la acessível)...
$app->run();
?>


O retorno do codigo acima:
Acessando http://../index.php/clientes

could not find driver<br>dblib<br><br>firebird<br><br>mysql<br><br>odbc<br><br>pgsql<br><br>sqlite<br>[]


A ideia era fazer a conexão de um APP que eu estou desenvolvendo no INTEL XDK. Ao clicar em um botão, ele acessaria o "index.php", por exemplo, e pela API Slim Framework trataria os dados.
Tambem não tenho certeza se esta certo esse modo de conexão no IP: 201.62.99.137, esse ip é onde esta o banco de dados oracle.

Sobre o retorno: could not find driver, eu li que seria por causa das DLLs da oracle dentro do PHP, fiz as alterações no PHP do meu servidor e continua aparecendo essa mensagem.
Se alguém tive uma maneira mais fácil de fazer essa conexão
Ficarei grato pelo ajuda.

Obrigado.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar