无法从CakePHP3.4中的存储过程访问多个结果行集

f2uvfpb9  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(364)

我试图访问cakephp3.4项目中存储过程返回的多个结果集。这是我的密码:

$stmt = $db->execute("call mydatasp($paramlist)");
    $result = array();                     
    try{
            do
            {
                $rowset = $stmt->fetchAll('assoc');
                $result[]=$rowset;
            } while($stmt->nextRowset());
        }
        catch(Exception $e){}

我做了很多搜索,也通过这个链接,但没有找到任何有用的数据。如何在cakephp 3中调用pdostatement::nextrowset()
我该怎么做?

eaf3rand

eaf3rand1#

$connection = ConnectionManager::get('default');

$sql = "CALL test()"; // name of stored procedure

$rowSet = 1; //default value is 1,change according to stored procedure result set to access multiple result

$stmt = $connection->execute($sql)->getInnerStatement()->getInnerStatement();

for ($i = 0; $i < $rowSet; $i++) {
    if($i > 0)
        $stmt->nextRowset();
    $response[] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

print_r($response);

假设存储过程 test() 返回4个结果集,然后需要修改 $rowSet = 4 ,否则默认值为 1

相关问题