terça-feira, 10 de outubro de 2017

PHP - Como chamar SQL procedures usando ODBC - Parte 2

Neste exemplo informamos como chamar uma procedure do tibero na linguagem PHP usando o driver ODBC.
Desta vez, a procedure possui parâmetros.
O código abaixo é um exemplo de como realizar esta tarefa.

Para saber como configurar uma conexão ODBC do Tibero no Windows clique Aqui.

Exemplo:

<?php
  /*
  How to run:
    C:\php> php tibero.procedure.php
  
  SQL support:
    create table luiz.tb_phptst (text varchar(50));
    
    create or replace procedure luiz.pr_test_with_arguments(p1 varchar2, p2 varchar2, p3 varchar2)
    is
      tm  timestamp;
    begin
      SELECT SYSTIMESTAMP into tm FROM DUAL;
      insert into luiz.tb_phptst values (p1 || p2 || p3 || tm);
    end;
  */
  
  $dsn    = "TIBERO6_32";
  $user   = "LUIZ";
  $passwd = "luiz";
  
  $arg1 = "It ";
  $arg2 = "works ";
  $arg3 = "fine ! - ";
  
  $sql = "CALL pr_test_with_arguments(?,?,?)";  // NOTE: Always use "CALL", "EXEC" does not work.
  
  $check_date = date("U");
  
  if ($conn = odbc_connect("$dsn", "$user", "$passwd"))
  {
    $stmt   = odbc_prepare($conn, $sql);
    $result = odbc_execute($stmt, array($arg1, $arg2, $arg3));
    odbc_close($conn);
  }
  else
  {
    echo "Can not connect to DSN: $dsn";
    echo odbc_errormsg();
    exit(1);
  }
  
  $check_date2 = date("U");
  $total_time = $check_date2 - $check_date;
  echo "Elapsed time : $total_time\n";
?>

Nenhum comentário:

Postar um comentário