I'm no php expert but your trying to fetch an oracle row object into php. rowtype are used only inside oracle pl/sql code.
try this approach
create or replace function get_musician_fun( i_mus_id in musicians.id%type)
return varchar2
as
musician_row varchar2(32000);
begin
select m.id||','|| m.first_name||','|| m.last_name||','|| m.born||','|| m.died ||','|| m.picture_path||','|| m.bio
into o_mus_rec
from musicians m
where id = i_mus_id;
return musician_row;
exception
when no_data_found then
raise_application_error(-20005,'found nothing.');
when too_many_rows then
raise_application_error(-20006,'found too many.');
when others then
raise_application_error(-20007,'cannot get musician.');
end get_musician_fun;
and split the result on your php like a csv.
- look at the revised
raise_application_error
bit the code above. - you might be better of querying the database and fetching the row without a stored procedure.