<?php /** @noinspection SqlDialectInspection */ 
/** @noinspection SqlNoDataSourceInspection */ 
 
/** @noinspection SqlResolve */ 
 
use eftec\PdoOne; 
 
include "../../vendor/autoload.php"; 
 
 
// connecting to database sakila at 127.0.0.1 with user root and password abc.123 
$dao=new PdoOne("sqlsrv","PCJC\SQLSERVER2017","sa","abc.123","base1",""); 
$dao->throwOnError=true; 
$dao->logLevel=3; 
try { 
    echo "<h1>connection. The instancePCJC\SQLSERVER2017, base:base1  user:root and password:abc.123 must exists</h1>"; 
    $dao->connect(); 
    echo "Connected A-OK!<br>"; 
} catch (Exception $e) { 
    echo "<h2>connection error:</h2>"; 
    echo $dao->lastError()."-".$e->getMessage()."<br>"; 
    die(1); 
} 
 
$valores=['param1'=>'hello','param2'=>'','param3'=>-1]; 
$result=""; 
 
if($dao->objectExist('ping','procedure')) { 
    $dao->drop('ping', 'procedure'); 
} 
 
$dao->createProcedure('ping',[ 
    ['','param1','varchar(2000)'], 
    ['output','param2','varchar(2000)'], 
    ['output','param3','int'], 
],"SET NOCOUNT ON; 
    set @param2=@param1 + ' world;'; 
    set @param3=1234; 
    select 'resultado' col1;"); 
 
echo "<pre>result:"; 
$resultado=$dao->callProcedure('ping',$valores,['param2']); 
 
var_dump($valores); 
var_dump($resultado); 
var_dump($dao->errorText); 
 
$valores=['param1'=>'hello','param2'=>'']; 
$result=""; 
 
die(1); 
/*$stmt=$dao->conn1->prepare("declare @param2 varchar(200); 
 exec dbo.ping @param1=:param1, @param2=:param2 output;  
 select @param2 col");*/ 
$stmt=$dao->conn1->prepare("{call ping (:param1 , :param2)}"); 
 
$stmt->bindParam(':param1', $valores['param1']); 
$stmt->bindParam(':param2', $valores['param2'], PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000); 
// $stmt->bindParam(2, $result, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 100); 
$stmt->execute(); 
$stmt->closeCursor(); 
 
/*while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    var_dump($row); 
}*/ 
 
//var_dump($stmt->fetchAll()); 
//$dao->callProcedure('ping',$valores,['param2']); 
//var_dump($dao->errorText); 
var_dump($valores); 
var_dump($result); 
echo "</pre>";
 
 |