我是新来的海报,请原谅我熟悉网站的协议和使用。我不是软件工程师,但多年来写得很多。
我遇到问题"查询失败:命令不同步;你现在不能运行这个命令"并花了很多时间试图找到我的方式的错误。我相信我已经完成了所有关于mysqli_next_result和mysqli_free_result的建议
在php中我做了几个查询,第二个查询失败了。如果我第二次运行第一个查询就可以了。两个查询都通过php中的库函数调用mysql中的存储过程。我调用item_category后跟item_list。在其他地方,我两次调用item_category,它工作正常。
phplib excert:
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>";
}
}