If you are using a stored procedure then use
SET NOCOUNT ON
The problem is that the stored procedure returns a result containing the number of rows affected as the first result.
$NULL = NULL;
$a = 1;
$b = "";
$query = "SET NOCOUNT ON;exec spABC ?, ?, ?;";
$stmt = $this->database->pdo->prepare($query, array(PDO::SQLSRV_ATTR_DIRECT_QUERY => true));
$stmt->bindParam(1, $a, PDO::PARAM_INT);
$stmt->bindParam(2, $NULL, PDO::PARAM_NULL);
$stmt->bindParam(3, $b, PDO::PARAM_STR);