函数未在预期位置返回程序的控制

时间:2013-09-30 14:46:13

标签: php mysql function

我这里有这段代码

if(isset($c) && isset($d)) 
{
echo $qry2;
retrieve(mysqli_query($qry1)) || die(mysqli_error());
ini_set('display_errors', 'On');
retrieve(mysqli_query($qry2)) || die(mysqli_error()) ;
}

当条件为真时,只调用第一个retrieve()函数,我有一个概念,即程序的控制返回到调用函数的下一行,这通常是任何函数编程语言,但在这里情况并非如此,当我echo $qry2时,我得到了理想的结果,即查询正在构建正确,我添加ini_set('display_errors', 'On');的原因是检查是否存在任何错误没有显示,关于如何实现从if块中传递参数到retrieve()的任何想法?如果我在包含$ qry1的部分之前移动包含$ qry2的函数调用,则只显示qry2。

1 个答案:

答案 0 :(得分:1)

根据你在问题中的说法,我只能假设retrieve没有返回真正的价值。当然,如果没有看到retrieve是什么,就不可能肯定地说。但是我猜测它会循环遍历结果集并构建一个行数组,然后返回。

如果查询没有返回任何行,那么retrieve可能只返回一个空数组,这是一个虚假值。这会导致脚本die(mysqli_error()),但由于查询中没有错误,因此结果基本上为die("")