在调用下面的递归函数时,我发现了内部错误 下面的函数是在矩阵表中检查引用id(一种类型的父id),如果在矩阵表中可用的引用id,则执行应该结束并返回该id,但如果在矩阵表中没有找到id,则再次获取引用id(enroller_id)来自那个旧引用ID的成员表(存储在$ ref_id中)并再次调用该函数,并且它继续调用,直到它获得特定的id在矩阵中是否可用,如果它不是,则在最后然后发现它将返回默认ID($ default_ref_id)。
但是我不知道为什么我在那里收到内部服务器错误我也试过将max_execution_time 30增加到50或100但是无法修复它。
如果你可以帮我解决这个问题,那将是很好的,因为从最近3到4个小时以来我一直坚持这个问题。
以下是我在那里创建的功能:
function findReferralMember($ref_id)
{
$default_ref_id=1;
$count_ref_member = GetSingleValue("matrix","Count(*)","member_id='".$ref_id."'");
if($count_ref_member > 0)
{
return $ref_id;
}
else
{
$ref_id = GetSingleValue("members","enroller_id","member_id='".$ref_id."'");
findReferralMember($ref_id);
}
return $default_ref_id;
}
答案 0 :(得分:0)
您的代码无限循环。
对函数findReferralMember
的每次调用都会再次调用findReferralMember
。 $count_ref_member
变量永远不会大于零。这个无限循环永远不会返回,最终会耗尽服务器上的堆栈。这就是返回500错误消息的原因。
跟踪代码并了解为什么会出现这种无限循环。修复无限循环,500错误将消失。