我们使用的是magento和php。并有一个存储过程进行一些处理,最后假设使用select查询返回多个结果集。
Eg : Select * FROM table1;
Select * FROM table2;
Select * FROM table3;
问题是,并非所有的表中都有数据。如果表中没有数据,则存储过程将不返回任何内容。在php中,我们使用for循环来获取数据。
for($i= 0; $i<=3; $i++){
$rowset = $sql->fetchAll(PDO::FETCH_ASSOC);
if ($rowset) {
switch ($i) {
case 0:
$spStatus = $rowset;
break;
case 1:
$boqSections = $rowset;
break;
case 2:
$boqEntries = $rowset;
break;
case 3:
$boqItems = $rowset;
break;
}
}
$sql->nextRowset();
}
如果表3中没有数据。存储过程不会返回第三行集/结果集。在上面的循环中,第三次调用 $sql->fetchAll(PDO::FETCH_ASSOC);
将失败导致一般错误。
有解决这个问题的办法吗?
1条答案
按热度按时间lh80um4z1#
为行计数添加以下条件
希望这会有帮助。