我在这里有这个代码片段
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("")
。