array (
0 =>
array (
0 =>
stdClass::__set_state(array(
'ReadBookTakenPeriodPerYear(33)' => 1.91781,
)),
),
)
You have a few layers of unneeded nesting in this return data. You have a php standard object which is the first and only element in an array. That array is the first and only element in a parent array. As it stands, you should be able to get the value like this:
$result[0][0]->ReadBookTakenPeriodPerYear(33);
You can simplify the returned data to make this slightly more straightforward by adding a ->first().
$result = DB::select($queryString)->first();
Adding ->first() here should eliminate one level of array. You are telling query builder to give you the first matching result rather than a collection of all of them. Now you should be able to do:
$result[0]->ReadBookTakenPeriodPerYear(33);
Combine this with use of the laravel helper Arr::get() to avoid an exception if no data is found in the database. https://laravel.com/docs/master/helpers#method-array-get
Arr::get($result, 0)->ReadBookTakenPeriodPerYear(33);
And,finally, the Laravel helper method optional() to make sure $results[0] returned an object before looking for the attribute on it to avoid an exception at that level. https://laravel.com/docs/master/helpers#method-optional
optional(Arr::get($result, 0))->ReadBookTakenPeriodPerYear(33);
That should get you the data, and also be able to handle cases where data wasn't found in the database without crashing.
I hope it helps!