Другой … Ошибка запроса: команды не синхронизированы; Вы не можете запустить эту команду сейчас

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

У меня возникла проблема с сообщением «Ошибка запроса: команды не синхронизированы; вы не можете запустить эту команду сейчас», и я потратил очень много времени, пытаясь найти ошибку моих способов. Я считаю, что я сделал все, что я видел, предложенный в отношении mysqli_next_result и mysqli_free_result

В php я делаю пару запросов, и второй не удается с этим. Если я запускаю первый запрос дважды, это нормально. Оба запроса вызывают хранимую процедуру в mysql через библиотечную функцию в php. Я вызываю item_category, а затем item_list. В других местах я вызываю item_category дважды, и он отлично работает.

phplib выдержка:

    function item_category($category = 0){
mysqli_multi_query(DBi:: $gissit_dbh, "CALL SP_Item_category" ."(". $category .")") or die("Query fail: " . mysqli_error(DBi::$gissit_dbh));
$result = mysqli_store_result(DBi:: $gissit_dbh);
return $result;
while($gissit_dbn->more_results()){
mysqli_next_result($result);
}
mysqli_free_result($gissit_dbh);
}

//Get all wanted items in this category and its subcategories
function item_list($category = 0){
mysqli_multi_query(DBi:: $gissit_dbh, "CALL SP_Item_list" ."(". $category .")") or die("Query fail: " . mysqli_error(DBi::$gissit_dbh));
$result = mysqli_store_result(DBi:: $gissit_dbh);
return $result;
while($gissit_dbn->more_results()){
mysqli_next_result($result);
}
mysqli_free_result($result);
}

хранимые процедуры mysql:

item_category:

select Id, Name, Parent_Id, Count from Item_Category where Parent_Id = cat_id order by Name

item_list:

SELECT * FROM `Item_Wanted` WHERE Category_Id IN
(SELECT Id FROM `Item_Category_Lookup` where Id = int_Parent_Id OR Id_1 = int_Parent_Id OR Id_2 = int_Parent_Id OR Id_3 = int_Parent_Id OR Id_4 = int_Parent_Id)

Фактический вызов функции phplib выглядит так:

If ($cat < 1){
$result = item_category($cat);
while ($row = mysqli_fetch_array($result)){
echo "<div class='col-md-4'><a href= item_wanted.php?cat=" .$row['Id'] .">".$row['Name']." (".$row['Count'].")"."</a></p>"."\r\n </div>";
}
}

If ($cat > 0){
$result = item_list($cat);
while ($row = mysqli_fetch_array($result)){
echo "<div class='col-md-4'><a href= item_wanted.php?cat=" .$row['Id'] .">".$row['Title']."</a></p>"."\r\n </div>";
}
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector