如何在php的while循环中执行mysql查询

ma8fv8wu  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(358)

我有一个mysql连接的问题,我想执行一个查询内一段时间的mysqli\uFetch\uAssoc,但我得到的错误,如“命令不同步;现在不能运行此命令”。

<?php
    $sql = "call sp_getUpline('$user_id')";
    $result = mysqli_query($connection,$sql);
    $numrow = mysqli_num_rows($result); 

    if($numrow > 1)
    {
        while($resultArray = mysqli_fetch_assoc($result))
        {
            $parent_id = $resultArray['parent_id'];
            if($parent_id != null)
            {
                $Level = $resultArray['Level'] + 1; 

                $comp_sql = "SELECT * FROM user_comp_plan where id='$parent_id'";
                $comp_result = mysqli_query($connection, $comp_sql) or die(mysqli_error($connection)); //getting error here

          }

        }
    }

?>

更新
我将结果存储在数组中,但仍然得到相同的问题。

<?php
        $sql = "call sp_getUpline('$user_id')";
        $result = mysqli_query($connection,$sql);
        echo $numrow = mysqli_num_rows($result);    

        if($numrow > 1)
        {
            $data = array();
            while($resultArray = mysqli_fetch_assoc($result))
            {
                $data[] = $resultArray;
            }
            for($i = 0; $i < count($data); $i++){       
                $parent_id = $data[$i]['parent_id'];
                if($parent_id != null)
                {
                    $Level = $data[$i]['Level'] + 1; 

                    $comp_sql = "SELECT * FROM user_comp_plan where id='$parent_id'";
                    $comp_result = mysqli_query($connection, $comp_sql) or die(mysqli_error($connection)); //getting error here

                }

            }
        }
?>
bogh5gae

bogh5gae1#

您不能同时有两个查询,因为mysqli默认使用非缓冲查询。您可以将第一个查询提取到一个数组中并在其中循环,或者告诉mysqli使用mysqli::store\u result缓冲查询

相关问题