Выполнение хранимой процедуры с курсором в PHP

У меня есть хранимая процедура, которую я пытаюсь вызвать с моего php. Вот хранимая процедура:

BEGIN
DECLARE done INT DEFAULT FALSE;
declare phone_temp VARCHAR(20) default '';
declare phone_cur cursor for SELECT DISTINCT sentNum FROM Queue;
declare continue handler for not found set done = true;

#create temp table
create temporary table if not exists temp_return AS SELECT * FROM Queue LIMIT 0;
#empty if exists
delete from temp_return;

open phone_cur;

phone_loop: LOOP
    fetch phone_cur into phone_temp;
    if done then
        leave phone_loop;
    end if;

   insert into temp_return SELECT * FROM Queue WHERE num2=phone_temp LIMIT 2;
   insert into temp_return SELECT * FROM Queue WHERE num1=phone_temp LIMIT 1;
end loop phone_loop;
close phone_cur;

select * from temp_return;

drop table if exists temp_return;
END

Прямо в MySQL Workbench, вызывая его работает. В php это не работает. Вот мой php:

function grabFromSmsQueue(){
    global $myStmt, $conn;
    if(isset($myStmt)){
        $myStmt -> execute();
    }
    else{
        $query = "CALL myStoredProc();";
        $myStmt = $conn->stmt_init();
        $myStmt -> prepare($query);
        $myStmt -> execute();

    }
    $result = $myStmt -> get_result();
    //print_r ($result);
    $info = [];
    if(isset($result)){
        while($data = $result->fetch_assoc()){
            $info[] = $data;
        }
    }
    return $info;
}

Подключаясь вот так, я получаю следующую ошибку

The localhost page isn’t working
localhost didn’t send any data.
ERR_EMPTY_RESPONSE

Я проследил свою проблему до проблемы с$data = $result->fetch_assoc()потому что, когда я комментирую это и помещаю вprint_r Я получил что-то на самом деле вернулся, чтоmysqli_result Object ( [current_field] => 0 [field_count] => 9 [lengths] => [num_rows] => 0 [type] => 1 ), Я сделал вывод, что это не работает, потому что[num_rows] => 0.

Теперь, возвращаясь к своей хранимой процедуре, я вынул все упоминания курсора и заменил его жестко запрограммированным значением, и оно работало как в рабочей среде, так и в php. Я уже проверил, что пользователь, подключающийся через php, имеет разрешение, что соединение открыто, и тот же код может выполнять другие хранимые процедуры (те, которые не включают курсоры). Означает ли это, что я не могу использовать курсоры в хранимых процедурах, которые вызываются php? Есть ли альтернативы курсорам? Я что-то упустил в своем синтаксисе php для работы с курсорами?

Ответы на вопрос(1)

Ваш ответ на вопрос