2013-06-05 2 views
0

имеют следующий код для загрузки категорий и пункта на категорию, чтобы построить таблицу:как позвонить из PHP хранимой процедуры для загрузки данных вложенных

$ дб = новый MySQLi («локальные», «корень», '123456', 'hdc1');

$ categorias = $ db-> query ("call getCategoria (1);");

if ($categorias) { while ($categoria = $categorias->fetch_object()) { 

    $idcategoria = $categoria->id; 

    // 2nd Query   
    if ($items = $db->query("call getItems($idcategoria);")) { 
     // Cycle through results 
     echo "<br />query2"; 

     while ($item = $items->fetch_object()) { 
      echo $item->descripcion; 
     } 

     // Free result set 
     $items->close(); 
     $db->next_result(); 
    } 

} 
// Free result set 
$categorias->close(); 
//$db->next_result(); } else echo($db->error); 

// Закрыть соединение $ db-> близко();

первый запрос выполняется успешно и загружает категории, но когда я хочу выполнить второй запрос для каждой категории, всегда будет иметь нулевой набор результатов.

почему ?? там нет страницы ошибки, а не ошибки хранимой процедуры ... почему результат набора элементов равен нулю ...

+0

, если вы сделали en echo для $ idcategoria? – Hackerman

+0

да ... и значение переменной равно – JRE

+0

Знаете ли вы, что значение юридической категории ... вы можете поместить этот номер в hardcoded на ваш вызов ... example: call getItems (7) – Hackerman

ответ

0

Наборы результатов, возвращаемые из хранимой процедуры, не могут быть правильно выбраны с помощью mysqli_query(). Функция mysqli_query() объединяет выполнение операторов и выборку первого набора результатов в буферный результирующий набор, если таковой имеется. Тем не менее, есть дополнительные контрольные таблицы хранимых процедур, скрытые от пользователя, которые заставляют mysqli_query() не возвращать ожидаемые конечные наборы пользователей.

Наборы результатов, возвращаемые из хранимой процедуры, извлекаются с использованием mysqli_real_query() или mysqli_multi_query(). Обе функции позволяют получать любое количество наборов результатов, возвращаемых оператором, например CALL

Смежные вопросы