我在这里有这个代码片段

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()?如果我将包含$ qry2的函数调用移到包含$ qry1的部分之前,则仅显示qry2。

最佳答案

根据您在问题中所说的,我只能假设retrieve没有返回真实值。当然,如果不了解retrieve是什么,就无法确定。但是,我可能会猜测它会遍历结果集并构建一个行数组,然后返回该行数组。

如果查询不返回任何行,则retrieve可能仅返回一个空数组,这是一个伪造的值。这导致脚本为die(mysqli_error()),但是由于查询中没有错误,因此结果实质上是die("")

09-07 20:35