PHP‎ > ‎

Execute a SQL Server stored procedure with PHP and capture return parameter


Apparently, you can't use an ADO connection to SQL Server.   You have to use PHP's built in sqlsrv_connection function to create the connection.


$serverName = "myserver\SQLEXPRESS";
$connectionInfo = array( "Database"=>"mydatabase", "UID"=>"myuser", "PWD"=>"mypassword","ConnectionPooling" => "1","MultipleActiveResultSets"=>'0');
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}    
$stmt = "{ CALL sp_PasswordHash (?,?)}"; //calling stored procedure with single input parameter and 1 output parameter
$psw='mypassword'; //search string
$hash="5E194CD3AC11F5B5922B197111111111118D05F27F2DADD502";
$params = array( 
                 array($psw, SQLSRV_PARAM_IN),
                 array($hash, SQLSRV_PARAM_OUT)
               );
$result = sqlsrv_query( $conn, $stmt,$params);
echo "My hash is ".$hash;
sqlsrv_close( $conn);


NOTE:   you initially set the output parameter (in this case $hash) to a value that is representative of what the stored procedure return parameter will contain.



Comments