--TEST-- Test for binding output parameter of encrypted values for a sample emplolyee table --SKIPIF-- --FILE-- $firstNameParams[$i], "LastName" => $lastNameParams[$i], "Address" => $addressParams[$i], "City" => $cityParams[$i] ); $stmt = AE\insertRow($conn, $tbname, $inputs); } // call Store Procedure $callSpSql = "{? = CALL $spname (?, ?)}"; $retParam = 0; $pPersonID = 1; $cbOutParam = 0; $stmt = sqlsrv_prepare($conn, $callSpSql, array( array( &$retParam, SQLSRV_PARAM_OUT ), array( $pPersonID, SQLSRV_PARAM_IN ), array( &$cbOutParam, SQLSRV_PARAM_OUT ))); sqlsrv_execute($stmt); sqlsrv_next_result($stmt); if (sqlsrv_errors()) { var_dump(sqlsrv_errors()); } print("retParam: " . $retParam . "\n"); print("pPersonID: " . $pPersonID . "\n"); print("cbOutParam: " . $cbOutParam . "\n"); // Retrieve all data through output params $outSql = AE\getCallProcSqlPlaceholders($sspname, 5); $firstNameOut = ''; $lastNameOut = ''; $addressOut = ''; $cityOut = ''; $pPersonID = 2; $stmt = sqlsrv_prepare($conn, $outSql, array( array( &$firstNameOut, SQLSRV_PARAM_OUT ), array( &$lastNameOut, SQLSRV_PARAM_OUT ), array( &$addressOut, SQLSRV_PARAM_OUT ), array( &$cityOut, SQLSRV_PARAM_OUT ), array( $pPersonID, SQLSRV_PARAM_IN ))); sqlsrv_execute($stmt); if (sqlsrv_errors()) { var_dump(sqlsrv_errors()); } print("firstNameOut: " . $firstNameOut . "\n"); print("lastNameOut: " . $lastNameOut . "\n"); print("addressOut: " . $addressOut . "\n"); print("cityOut: " . $cityOut . "\n"); print("pPersonID: " . $pPersonID . "\n"); sqlsrv_query($conn, "DROP PROCEDURE $spname"); sqlsrv_query($conn, "DROP PROCEDURE $sspname"); sqlsrv_query($conn, "DROP TABLE $tbname"); sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ?> --EXPECT-- retParam: 100 pPersonID: 1 cbOutParam: 1 firstNameOut: Tahir lastNameOut: Chaudry addressOut: 83 First Street cityOut: Brooklyn pPersonID: 2